【问题标题】:adding string keys to inner arrays将字符串键添加到内部数组
【发布时间】:2015-04-23 15:50:58
【问题描述】:

我希望将字符串键添加到我的内部 PHP 数组中。所以,我想转换这个:

array (size=2)
0 => array (size=3)
  0 => string 'X705' (length=4)
  1 => string 'X723' (length=4)
  2 => string 'Sue' (length=0)
1 => array (size=3)
  0 => string 'X714' (length=4)
  1 => string 'X721' (length=4)
  2 => string 'John' (length=0)

到这里:

array (size=2)
0 => 
array (size=3)
  'code1' => string 'X705' (length=4)
  'code2' => string 'X723' (length=4)
  'name' => string 'Sue' (length=0)
1 => 
array (size=3)
  'code1' => string 'X714' (length=4)
  'code2' => string 'X721' (length=4)
  'name' => string 'John' (length=0)

我想我需要使用 array_walk 但无法理解。任何帮助表示赞赏。

【问题讨论】:

  • 需要修改原来的数组,还是用字符串keys新建一个数组?
  • 到目前为止你有没有尝试过?
  • 你需要一个你尝试过的例子。

标签: php array-walk


【解决方案1】:

您可以为此目的使用array_map

$newarray = array_map(function($x) {
    return array("code1" => $x[0], "code2" => $x[1], "name" => $x[2]);
}, $array); 

$array 是您的输入数组。

【讨论】:

  • 正是我所需要的。简单而优雅。谢谢。
【解决方案2】:

从这里开始:

foreach ($array as $key=>$item) {
  $item['code1']=$item[0];
  unset($item[0]);
  $item['code2']=$item[1];
  unset($item[1]);
  $item['name']=$item[2];
  unset($item[2]);
  $array[$key]=$item;
}

【讨论】:

    【解决方案3】:

    我会使用array_map(),但这里有一个替代方案:

    foreach($array as &$v) {
        $v = array_combine(array('code1','code2','name'), $v);
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-07
      • 1970-01-01
      • 2011-12-15
      • 2019-05-02
      • 2013-07-23
      • 2012-12-15
      • 2011-04-03
      • 2015-02-15
      • 1970-01-01
      相关资源
      最近更新 更多