【问题标题】:How to Merge inner array elements in php using array functions? [duplicate]如何使用数组函数合并php中的内部数组元素? [复制]
【发布时间】:2015-02-09 06:38:21
【问题描述】:

我有一个这样的数组。

array (size=4)
 0 => 
array (size=1)
  'serial_id' => string '214' (length=3)
 1 => 
array (size=1)
  'serial_id' => string '218' (length=3)
 2 => 
array (size=1)
  'serial_id' => string '221' (length=3)
 3 => 
array (size=1)
  'serial_id' => string '319' (length=3) 

我希望这是单个数组

  array (size=4)
'0' => string '214' (length=3)
'1' => string '218' (length=3)
'2' => string '221' (length=3)
'3' => string '319' (length=3)

我不想运行循环,是否有任何数组函数可以提供我所需的输出

谁能帮帮我??? 我是 php 数组函数的新手。 感谢所有答案,但等待使用数组函数的最短答案.. 这是我在 php 中的代码

    <?php 
    $array = array( array('serial_id' => 214),
         array('serial_id' => 218 ),
         array('serial_id' => 221),
         array('serial_id' => 319) );
    var_dump($array);

    $array2 = array(218,214,221,319);
    var_dump($array2);
    ?>

【问题讨论】:

  • 遍历数组并重建它?听起来很容易。显示您的 PHP 代码。
  • 仅供参考:您不能有重复的密钥,使用 foreacharray_column 就可以了。
  • 这可能是错误的..因为键是相同的..如果键相同则它将被最后一个值覆盖..

标签: php arrays algorithm loops multidimensional-array


【解决方案1】:

试试这个..这是你的旧数组..试着安排它..把它当作例子..

 $array = array(0 => array("serial_id"=>"214"),  
              1 => array("serial_id"=>"218"), 
              2 => array("serial_id"=>"221"),
              3 => array("serial_id"=>"319")
              ); 

您可以使用 foreach 获取一个新数组中的内部元素 $new_array = 数组(); foreach($array as $key=>$inner_array){

   foreach($inner_array as $k=>$v){
    $new_array[$k] = $v;
   }
}



  Output will be
$new_array = array(
    'serial_id_1' => string '214',
    'serial_id_2' => string '218',
    'serial_id_3' => string '221',
    'serial_id_4' => string '319',
);

【讨论】:

    【解决方案2】:

    你可以试试这段代码,我看到你正在更新你的问题

          <?php
        function convert_array($a) {
            for($j = 0; $j < count($a); $j++) {
                $b[$j] = $a[$j]['serial_id'];
            }
        return $b;
        }
    
       $array = array( array('serial_id' => 214),
             array('serial_id' => 218 ),
             array('serial_id' => 221),
             array('serial_id' => 319) );
    
        $array2 = convert_array($array);
    
            var_dump($array2);
    
            ?>  
    

    如果你使用 php > 5.5.0

       <?php
    
       $array = array( array('serial_id' => 214),
             array('serial_id' => 218 ),
             array('serial_id' => 221),
             array('serial_id' => 319) );
    
    $array2 = array_column($array, 'serial_id');
    
        var_dump($array2);
    
        ?> 
    

    【讨论】:

    • 尚未...等待执行相同功能的数组函数。
    • 您的答案是正确的。 php中的array_chunk之类的预定义数组函数是否有可能做到这一点???。我尝试了这段代码。它有效,但我想为此目的使用 php 预定义函数。
    • 是的,这就是我想要的。非常感谢:-)
    【解决方案3】:

    如下例所示循环遍历数组以生成新数组:

    $array = array("0" => array("serial_id"=>"214"),  
                  "1" => array("serial_id"=>"218"), 
                  "2" => array("serial_id"=>"221"),
                  "3" => array("serial_id"=>"319")
                  );
    $new_arr=array();              
    foreach( $array as $key => $value ){
    $new_arr["serial_id_".$key]=$value["serial_id"];
    }
    
    print_r($new_arr);
    

    在这里试试http://sandbox.onlinephpfunctions.com/code/2291c9eaf9842fdbeda4fd69bc707d7404b390d0

    循环新数组

    foreach( $new_arr as $key => $value ){
        echo $key."\t=>\t".$value."\n";
    }
    

    【讨论】:

      猜你喜欢
      • 2013-06-07
      • 2021-05-11
      • 2020-08-12
      • 2018-04-07
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 2022-08-07
      相关资源
      最近更新 更多