多个foreach循环和访问外部值

时间:2012-08-23 23:31:30

标签: php arrays variables associative-array

我正在尝试在循环之外的多个foreach循环中访问多个值:

foreach(array1 as arr1) {
    $var1 = arr2['value1'];  //$array is associative array with mutliple keys value1
}

然后我有另一个

foreach(array2 as arr2) {
    $var2 = arr2['value']; //$array2 is another associative array with multiple keys value
}

所有这些都在另一个大的foreach循环中,现在我想在大foreach内使用$var1$var2创建一个数组。我将要创建的这个数组也将是一个关联数组。我有什么想法可以做到这一点吗?

数组1:

Array
(
  [0] => Array
    (
        [id] => 1
        [id_name] => 251452
        [name] => bob
    )

[1] => Array
    (
        [id] => 2
        [id_name] => 251453
        [name] => bob

    )

)

数组2:

Array
(
[0] => Array
    (
        [id_person] => 4
        [id_last_name] => 251452
        [last_name] => smith

    )

[1] => Array
    (
        [id_person] => 15
        [id_last_name] => 251453
        [last_name] => johnson
    )

)

假设这些来自数据库的两个不同查询。

我希望从第一个数组中获取每个名称的第一个名称,并从第二个数组中获取每个名称的最后一个名称,并创建一个包含此数据的数组以及其他数据。

1 个答案:

答案 0 :(得分:2)

了解多维数组。

另外看看stdclass并且可能创建一个这样的数组,它们可以在一个定义中存储许多变量 - 这可以在很多方面提供帮助。 (标准班)

嵌套循环 - 这只会将所有子数组转储到一个对象中 // InnerArray的对象和数组示例

 $Object = new stdclass();
 $AllOfIt = array();
 $cnt = 0;
 foreach($OuterArray as $OuterKey => $InnerArray)
 {
      $cnt++;
      foreach($InnerArray as $InnerKey => $InnerValue)
      {
           $Object->$cnt = $InnerValue;
           $AllOfIt[$cnt] = $InnerValue;
      }
 }