【问题标题】:foreach with key and array带键和数组的 foreach
【发布时间】:2014-08-20 12:58:16
【问题描述】:

我有一个带有

的数组
array(2) {
  ["bar_id"]=>
  array(3) {
    [0]=>
    string(1) "2"
    [1]=>
    string(1) "1"
    [2]=>
    string(1) "3"
  }
  ["foo_id"]=>
  array(3) {
    [0]=>
    string(2) "56"
    [1]=>
    string(2) "46"
    [2]=>
    string(2) "61"
  }
}

如何获取带有[["2","56"],["1","46"],["3","61"]]的数组?

【问题讨论】:

    标签: php arrays array-key


    【解决方案1】:
    $foo = $arr['foo_id'];
    $bar = $arr['bar_id'];
    $result = array();
    $count = count($foo);
    for ($i = 0; $i < $count; $i++) {
        $result[] = array($bar[$i], $foo[$i]);
    }
    print_r($result);
    

    【讨论】:

    • 这个没问题,但我有 11 个或更多键(不仅是 foo_id 和 bar_id)……所以没有“魔法”函数来旋转我的数组。
    • 您可以轻松获取数组键(使用:php.net/manual/en/function.array-keys.php),如果您可以找到或已经知道每个子数组中的元素数量,您应该能够做到.
    • 是的,我知道,我会做我自己的工作。
    【解决方案2】:
    $parent_array = array(
                           'bar_id' => array('2','1','3'),
                            'food_id' => array('56','46','61')
                          );
    
    
    $bar_array = $parent_array['bar_id'];
    $food_array = $parent_array['food_id'];
    
    $new_array = array();
    
    
    for($i= 0 ; $i<count($bar_array); $i++)
       {
             $new_array[$i] = array($bar_array[$i],$food_array[$i]);
       }
    

    【讨论】:

      【解决方案3】:
      $food = $arr['food_id'];
      $bar = $arr['bar_id'];
      $result = array();
      
      for ($i = 0; $i <count($food); $i++) {
          $result[] = array($bar[$i], $food[$i]);
      }
      

      【讨论】:

        【解决方案4】:
        $new_array = array();
        
        for ($i = 0; $i < count($array[0]); $i++){
            $new_array[] = new array(
                $array['bar_id'][$i],
                $array['foo_id'][$i],
            );
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-23
          • 2014-02-08
          • 2023-03-11
          • 1970-01-01
          • 2021-06-04
          • 1970-01-01
          相关资源
          最近更新 更多