在foreach循环中向多维数组添加元素(PHP)

Yan*_*lan 2 php foreach multidimensional-array

我试图通过循环遍历类别数组来检查是否已经选择了某个类别我也想在数组中添加另一个元素whci只是指示类别是否已被选中

我的categories数组看起来像这样

0=>array(category_id=>12,category_name=>"blogger")  
1=>array(category_id=>13,category_name=>"dancer")
Run Code Online (Sandbox Code Playgroud)

等...
现在我正在尝试的代码是这样的:

foreach ($userCategories as $key=>$category) {
    if($category['category_id'] == $mediaDetails['currentCategory']) {
        $category['current'] = 1;
    } else {
        $category['current'] = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

执行时

die(var_dump($userCategories));
Run Code Online (Sandbox Code Playgroud)

我希望得到一个类似的数组

0=>array(category_id=>12,category_name=>"blogger",current=>0)  
1=>array(category_id=>13,category_name=>"dancer",current=>1)
Run Code Online (Sandbox Code Playgroud)

但是我获得了与foreach循环之前相同的数组

有任何想法吗?

谢谢

zeb*_*h49 11

看起来好像$category没有通过引用传递.

尝试$userCategories[$key]['current']=1改为,看看它是如何工作的.

  • 或修复foreach`foreach($ userCategories as $ key =>&$ category){`(注意&) (6认同)