[英]Convert index array in associative array php for loop
我有以下数组:
$all_items = Array
(
[0] => abc
[1] => bcd
[2] => cde
[3] => def
[4] => efg
)
我想将此数组转换为如下所示的关联数组。
array(
array('A'=>abc, 'position'=>0),
array('A'=>bcd, 'position'=>1),
array('A'=>cde, 'position'=>2),
array('A'=>abc, 'position'=>3),
array('A'=>bcd, 'position'=>4)
),
到目前为止,我已经尝试了许多其他方法,但都没有运气。 这是我的代码。
$k = 0;
foreach($all_items as $item) {
$all_items[$key]['src'] =$item;
$all_items[$key]['position']=i;
$k++;
};
我想念什么?
这应该非常简单,请尝试以下方式:
<?php
$items = array();
foreach($all_items as $k=>$v) {
$items[] = array(
'A' => $v,
'position' => $k
);
}
这应该为您工作:
(这里我只是使用array_map()
遍历数组,并为每个值返回一个新数组)
<?php
$all_items = ["abc", "bcd", "cde", "def", "efg"];
$result = array_map(function($v, $k){
return ["A" => $v, "position" => $k];
}, $all_items, array_keys($all_items));
print_r($result);
?>
输出:
Array
(
[0] => Array
(
[A] => abc
[position] => 0
)
//...
[4] => Array
(
[A] => efg
[position] => 4
)
)
尝试-
$newArr = array_map('buildArr', $all_items, array_keys($all_items));
function buildArr($data, $key) {
$result = array('A' => $data, 'position' => $key);
return $result;
}
var_dump($newArr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.