【问题标题】:How to merge Arrays in php如何在php中合并数组
【发布时间】:2013-11-06 17:19:09
【问题描述】:

如何在php中合并多个数组

    $array1="Array ( [0] => mouse ) Array ( [0] => mac ) Array ( [0] => keyboard )";

我怎么可以这样排列

    Array( [0] =>mouse  [1] => mac [2] =>keyboard );

【问题讨论】:

  • 数组是否存储在字符串中?就像你从其他地方得到了一个包含 3 个数组的 print_r,然后把它们放在一个字符串中,期望得到这些数组?
  • How to merge Arrays -- 等等,这不是数组。
  • $array1 = array('mouse', 'mac', 'keyboard');
  • 我想合并 $array1 的数组

标签: php arrays merge


【解决方案1】:

根据您的数组的存储方式,有几个选项。

这里有两个例子:

<?php
$old_array = array(
    array('mouse'),
    array('mac'),
    array('keyboard')
);

$new_array = array();
foreach($old_array as $a){
    $new_array[] = $a[0];
}
echo '<pre>',print_r($new_array),'</pre>';

//// OR ////

$array1 = array('mouse');
$array2 = array('mac');
$array3 = array('keyboard');

$new_array = array_merge($array1,$array2,$array3);


echo '<pre>',print_r($new_array),'</pre>';

【讨论】:

    【解决方案2】:

    你应该使用PHP的array_merge函数。

    这个:

    <?php
    $a1=array("red","green");
    $a2=array("blue","yellow");
    print_r(array_merge($a1,$a2));
    ?>
    

    将返回:

    Array ( [0] => red [1] => green [2] => blue [3] => yellow )
    

    这就像小菜一碟一样简单! :)

    试试看:http://www.w3schools.com/php/showphp.asp?filename=demo_func_array_merge

    教程:

    http://www.w3schools.com/php/func_array_merge.asp

    http://php.net/array_merge

    【讨论】:

    • 但我想合并 $array1="Array ( [0] => mouse ) Array ( [0] => mac) Array ( [0] => keyboard )";不是 $array1 和 $array2
    【解决方案3】:

    所以你基本上有一个数组数组。您可以通过以下方式执行此操作:

    $array = array(array(0 => 'mouse'), array(1 => 'mac'), array(2 => 'keyboard'));
    
    $mergedArray = array();
    foreach ($array as $part) {
        $mergedArray = array_merge($mergedArray, $part);
    }
    
    var_dump($mergedArray);
    

    结果正是你所期望的:

    array(3) {
      [0]=>
      string(5) "mouse"
      [1]=>
      string(3) "mac"
      [2]=>
      string(8) "keyboard"
    }
    

    如果大数组中还有标量,可以将循环修改为:

    foreach ($array as $part) {
        if (!is_array($part)) {
            $mergedArray[] = $part;
        } else {
            $mergedArray = array_merge($mergedArray, $part);
        }
    }
    

    注意:这将合并所有子数组中的所有值,不限于每个子数组一个条目。

    【讨论】:

      【解决方案4】:

      php array_merge() 函数,将一个或多个数组的元素合并在一起,以便将一个数组的值附加到前一个数组的末尾。它返回结果数组。 使用 $array = array_merge( $array1 , $array2, $array3 ..... $arrayN); 合并 N 个数组;

           $array1 = array ( '0' => 'mouse' );
           $array2 = array ( '0' => 'mac' );
           $array3 = array ( '0' => 'keyboard' );
      
           $array = array_merge( $array1 , $array2, $array3);
      
           echo "<pre>";
               print_r($array);
           echo "</pre>";
      

      O/P:

      Array
      (
         [0] => mouse
         [1] => mac
         [2] => keyboard
       )
      

      更多信息:http://us2.php.net/array_merge

      【讨论】:

      • 但我想合并 $array1="Array ( [0] => mouse ) Array ( [0] => mac) Array ( [0] => keyboard )";这不是 $array1 和 $array2
      • 但是您提到的不是数组,而是字符串。您可以使用 is_array() 函数进行验证。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 2016-12-12
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多