【问题标题】:PHP foreach array keyPHP foreach 数组键
【发布时间】:2016-08-17 17:42:14
【问题描述】:

有一个数组,如何让数组key和id一致?

Array
(
    [0] => Array
        (
            [id] => 1
            [title] => Phones
            [parent] => 0
        )

    [1] => Array
        (
            [id] => 2
            [title] => Apple
            [parent] => 1
        )

    [2] => Array
        (
            [id] => 5
            [title] => Samsung
            [parent] => 1
        )
)

我尝试这样做,但结果反过来,id 变得与数组键相同。应该是相反的。

foreach ($statement as $key => $value) {
    $statement[$key]['id'] = $key;
}

【问题讨论】:

标签: php arrays foreach key


【解决方案1】:

你弄错的部分是 $key 的用法。请注意,$key 是指主数组的键,即 0、1、2。

由于我们需要key id对应的值,$value['id'] 成为我们的结果数组 $newArray 的键。只需使用一个新变量 并将其存储在其中。

代码:

$newArray = array();
foreach ($statement as $value) {
    $newArray[$value['id']] = $value;
}

输出:

 Array
(
   [1] => Array
    (
        [id] => 1
        [title] => Phones
        [parent] => 0
    )
   [2] => Array
    (
        [id] => 2
        [title] => Apple
        [parent] => 1
    )

    [5] => Array
     (
        [id] => 5
        [title] => Samsung
        [parent] => 1
      )
)

【讨论】:

    【解决方案2】:
    foreach($array as $key => $val){
     $new_array[$val['id']] = $val;
    }
    
    $array = $new_array;
    

    【讨论】:

    • 请注意,如果您没有唯一 ID,您将只能找到新数组中的最后一个值。另外,接受答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2016-07-20
    • 2023-03-16
    • 1970-01-01
    • 2014-09-10
    • 2015-04-04
    • 2010-11-13
    相关资源
    最近更新 更多