繁体   English   中英

将关联数组php中的索引数组转换为循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM