将关联数组的每两个值转换为键值对
Convert every two values of an associative array into key-value pairs
我需要将一个关联数组转换为一个新的关联数组,其中原始键被忽略,每两个连续值成为新的键值对。
输入:
Array
(
[SELECT0] => 'orange'
[INPUT0] => '100'
[SELECT1] => 'bannana'
[INPUT1] => '200'
[SELECT2] => 'apple'
[INPUT2] => '300'
)
期望的输出:
Array
(
[orange] => '100'
[bannana] => '200'
[apple] => '300'
)
您需要做的就是遍历所有数组值,然后将每个奇数作为键,将下一个索引作为值。
$arr = [
'SELECT0' => 'orange',
'INPUT0' => '100',
'SELECT1' => 'bannana',
'INPUT1' => '200',
'SELECT2' => 'apple',
'INPUT2' => '300'
];
$arr = array_values($arr);
$newData = [];
for ($i = 0; $i < count($arr); $i++) {
$newData[$arr[$i]] = $arr[++$i];
}
现在 $newData
包含这个:
Array
(
[orange] => 100
[bannana] => 200
[apple] => 300
)
假设格式永远不会改变...
$new=array();//start a new array
$count=count($array)/2; //get the number of items to loop through
for ($i = 0; $i < $count; $i++) { //loop
$k='SELECT'.$i; //key
$v='INPUT'.$i; //value
$new[$array[$k]]=$array[$v]; //create new array
}
print_r($new); //display
这是组合三个 PHP 数组函数的一种方法:
$result = array_combine(...array_map(null, ...array_chunk($array, 2)));
array_chunk
给你
[
['orange', '100'],
['banana', '200'],
['apple', '300']
];
array_map
将其转换为:
[
['orange', 'banana', 'apple'],
['100', '200', '300'],
];
可以直接输入 array_column
。
- 使用
array_values()
从输入数组中删除无用的原始键
- 将数据分组为 2 元素子数组
- 迭代paris并使用“数组解构”临时声明
$newKey
,然后使用$newKey
将相关值推入结果数组。不需要 foreach 的主体。
代码:(Demo)
$result = [];
foreach (array_chunk(array_values($arr), 2) as [$newKey, $result[$newKey]]);
var_export($result);
输出:
array (
'orange' => '100',
'bannana' => '200',
'apple' => '300',
)
我需要将一个关联数组转换为一个新的关联数组,其中原始键被忽略,每两个连续值成为新的键值对。
输入:
Array
(
[SELECT0] => 'orange'
[INPUT0] => '100'
[SELECT1] => 'bannana'
[INPUT1] => '200'
[SELECT2] => 'apple'
[INPUT2] => '300'
)
期望的输出:
Array
(
[orange] => '100'
[bannana] => '200'
[apple] => '300'
)
您需要做的就是遍历所有数组值,然后将每个奇数作为键,将下一个索引作为值。
$arr = [
'SELECT0' => 'orange',
'INPUT0' => '100',
'SELECT1' => 'bannana',
'INPUT1' => '200',
'SELECT2' => 'apple',
'INPUT2' => '300'
];
$arr = array_values($arr);
$newData = [];
for ($i = 0; $i < count($arr); $i++) {
$newData[$arr[$i]] = $arr[++$i];
}
现在 $newData
包含这个:
Array
(
[orange] => 100
[bannana] => 200
[apple] => 300
)
假设格式永远不会改变...
$new=array();//start a new array
$count=count($array)/2; //get the number of items to loop through
for ($i = 0; $i < $count; $i++) { //loop
$k='SELECT'.$i; //key
$v='INPUT'.$i; //value
$new[$array[$k]]=$array[$v]; //create new array
}
print_r($new); //display
这是组合三个 PHP 数组函数的一种方法:
$result = array_combine(...array_map(null, ...array_chunk($array, 2)));
array_chunk
给你
[
['orange', '100'],
['banana', '200'],
['apple', '300']
];
array_map
将其转换为:
[
['orange', 'banana', 'apple'],
['100', '200', '300'],
];
可以直接输入 array_column
。
- 使用
array_values()
从输入数组中删除无用的原始键
- 将数据分组为 2 元素子数组
- 迭代paris并使用“数组解构”临时声明
$newKey
,然后使用$newKey
将相关值推入结果数组。不需要 foreach 的主体。
代码:(Demo)
$result = [];
foreach (array_chunk(array_values($arr), 2) as [$newKey, $result[$newKey]]);
var_export($result);
输出:
array (
'orange' => '100',
'bannana' => '200',
'apple' => '300',
)