将数据添加到具有条件的特定位置的数组

时间:2013-03-13 19:40:02

标签: php arrays conditional-statements

我已经在网上搜索了几个小时,但找不到合适的解决方案。

这种情况:

我想将一些数据添加到ID等于某些var的特定数组中。

这是需要添加的数据:

$var1 = "some data";
$var2 = "some other data";

数组的一个例子:

array (size=2)
  0 => 
    array (size=9)
      'id' => string '1' (length=1)
      'title' => string 'title' (length=13)
      'description' => string 'Some Description' (length=21)
      'function' => string 'Some function' (length=23)
      'employment' => string 'Some employment' (length=18)
      'region' => string 'Eindhoven' (length=9)
      'region_id' => string '1' (length=1)
      'function_id' => string '1' (length=1)
      'employment_id' => string '3' (length=1)
  1 => 
    array (size=9)
      'id' => string '1' (length=1)
      'title' => string 'title2' (length=13)
      'description' => string 'Some Description2' (length=21)
      'function' => string 'Some function2' (length=23)
      'employment' => string 'Some employment2' (length=18)
      'region' => string 'Eindhoven' (length=9)
      'region_id' => string '1' (length=1)
      'function_id' => string '1' (length=1)
      'employment_id' => string '3' (length=1)

在另一个变量中,我有id。条件是这样的:

If ($someid == $array[0][0]['id]) {
// Add 'ImNewData' => $var1;
}

在这个例子中,我使用了2个数组,但在最终设计中它可能是200个。

这样做最体面(快速?)的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

我可以说,听起来你只是想在阵列上添加新数据。

foreach ($array as $index => $user) {
    if ($user['id'] == $id) {
        $user[$index]['example_var'] = $someVar;
    }
}

这样做,是使用array [0]遍历每个元素,并将该元素索引存储在$ index中。这允许您将这些值放在原始数组中。在foreach循环终止后,$ user值将超出范围,因此您必须将其直接添加到原始数组中。