【问题标题】:How to change this array into keys and values如何将此数组更改为键和值
【发布时间】:2021-03-04 08:30:24
【问题描述】:

我有这个数组...

[
 [
  [
    "name" => "Initials"
    "value" => "ROR"
  ],
  [
    "name" => "Awards"
    "value" => "Swimming"
  ],
],
[
  [
    "name" => "Initials"
    "value" => "NAL"
  ],
  [
    "name" => "Awards"
    "value" => "Cycling"
  ],
 ]
]

更改此数组的最佳方法是什么,以便我可以像这样保存它...

[
  [
    "Initials" => "ROR"
    "Awards" => "Swimming"
  ],
  [
    "Initials" => "NAL"
    "Awards" => "Cycling"
  ],
]

我已经开始做一些事情,比如循环遍历它们……但这给了我每个新数组一个数组元素。

foreach($array as $rows) {
    foreach($rows as $field) {
        $values[] = [$field['name'] => $field['value']];
    }
}

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    您可以使用array_column() 来索引内部数组,指定要用作值的列和索引它的列...

    $values = [];
    
    foreach($array as $rows) {
        $values[] = array_column($rows, "value", "name");
    }
    print_r($values);
    

    给...

    Array
    (
        [0] => Array
            (
                [Initials] => ROR
                [Awards] => Swimming
            )
    
        [1] => Array
            (
                [Initials] => NAL
                [Awards] => Cycling
            )
    
    )
    

    【讨论】:

    • 完美!我试过 array_column 但我想我用错了。这完美地工作。谢谢。
    【解决方案2】:

    你可以这样做

    foreach($array as $rows) {
        foreach($rows as $field) {
            $values[] = [$field];
        }
    }
    

    或者你可以使用

    $newArray = $array[0];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多