Php 如何将3或4个阵列合并为一个阵列

Php 如何将3或4个阵列合并为一个阵列,php,arrays,Php,Arrays,我有以下三个数组 Array ( [0] => 395 [1] => 295 ) Array ( [0] => 5a3a13f237715637629.jpeg [1] => 5a3b602654cfd527057.jpg ) Array ( [0] => Seller Test Product [1] => Offline Product for Test ) 第一个数组是数量,第二个数组是图像,第三个数组是产品名称。 我想将这三个数组合并成一个数组,并

我有以下三个数组

Array ( [0] => 395 [1] => 295 )
Array ( [0] => 5a3a13f237715637629.jpeg [1] => 5a3b602654cfd527057.jpg ) 
Array ( [0] => Seller Test Product [1] => Offline Product for Test )
第一个数组是数量,第二个数组是图像,第三个数组是产品名称。 我想将这三个数组合并成一个数组,并在PHP中使用foreach循环显示它

if I use array_merge(), I am getting the output:

Array ( [0] => 395 [1] => 295 ) Array ( [0] => 5a3a13f237715637629.jpeg [1] => 5a3b602654cfd527057.jpg ) Array ( [0] => Seller Test Product [1] => Offline Product for Test ) Array ( [0] => 5a3a13f237715637629.jpeg [1] => 5a3b602654cfd527057.jpg [2] => Seller Test Product [3] => Offline Product for Test [4] => 395 [5] => 295 )
现在,如何在视图中使用foreach循环显示它

在视图中,代码是:

<?php foreach($c as $key => $strs)
    {  ?>

    <img style="width:150px;" src="<?php echo @getimagesize(base_url("assets/upload/product/".$key)) ? base_url("assets/upload/product/".$key):'http://placehold.it/350x200';?>" class="img-responsive">
    <input type="text" name="vala" value="<?php echo $strs; ?>">
    <input type="text" name="valas" value="<?php echo $strss; ?>">

    <?php } ?>

“class=”img responsive“>

示例代码

<?php
$array1=array ( 0 => 395,1 => 295 );
$array2=array ( 0 =>" 5a3a13f237715637629.jpeg" ,1 => "5a3b602654cfd527057.jpg" ) ;
$array3=array ( 0 => "Seller Test Product",1 => "Offline Product for Test" );
echo "<pre>";
print_r($array1);print_r($array2);print_r($array3);
$result=array_merge($array1,$array2,$array3);
print_r($result);
?>

示例代码

<?php
$array1=array ( 0 => 395,1 => 295 );
$array2=array ( 0 =>" 5a3a13f237715637629.jpeg" ,1 => "5a3b602654cfd527057.jpg" ) ;
$array3=array ( 0 => "Seller Test Product",1 => "Offline Product for Test" );
echo "<pre>";
print_r($array1);print_r($array2);print_r($array3);
$result=array_merge($array1,$array2,$array3);
print_r($result);
?>

因此,您真正想要的是将所有数组的所有字段组合在一起。具有相同索引的值应合并到单个对象中。可用于此

[
    {
        'qunatity' => 395,
        'image' => '5a3a13f237715637629.jpeg',
        'name' => 'Seller Test Product'
    },
    {
        'qunatity' => 295,
        'image' => '5a3b602654cfd527057.jpeg',
        'name' => 'Offline Product for Test'
    }
]
结果将是:

foreach($final as $product) {
    echo $product->name;
    echo $product->image;
    echo $product->quantity;
}
$a=array ( 0 => 395,1 => 295 );
$b=array ( 0 =>" 5a3a13f237715637629.jpeg" ,1 => "5a3b602654cfd527057.jpg" ) ;
$c=array ( 0 => "Seller Test Product",1 => "Offline Product for Test" );

Foreach($a as $key => $val){
    $res[$key]['qty'] = $val;
    $res[$key]['img'] = $b[$key];
    $res[$key]['desc'] = $c[$key];
}
Var_dump($res);
然后,您可以在
foreach
中对其进行如下处理:

$final = array_map(NULL, $quantityArray, $imageArray, $nameArray);

对于那些非常匆忙的人,以下对的调用将执行相同的技巧,但不会将数组字段映射到新多维数组中的特定键:

[
    [
        0 => 395,
        1 => '5a3a13f237715637629.jpeg',
        2 => 'Seller Test Product'
    ],
    [
        0 => 295,
        1 => '5a3b602654cfd527057.jpeg',
        2 => 'Offline Product for Test'
    ],
]
结果将是:

foreach($final as $product) {
    echo $product->name;
    echo $product->image;
    echo $product->quantity;
}
$a=array ( 0 => 395,1 => 295 );
$b=array ( 0 =>" 5a3a13f237715637629.jpeg" ,1 => "5a3b602654cfd527057.jpg" ) ;
$c=array ( 0 => "Seller Test Product",1 => "Offline Product for Test" );

Foreach($a as $key => $val){
    $res[$key]['qty'] = $val;
    $res[$key]['img'] = $b[$key];
    $res[$key]['desc'] = $c[$key];
}
Var_dump($res);

新创建的MLTIDIMENSIAL数组的内部数组将按照数组提供给的顺序填充。

因此,您真正想要的是将所有数组的所有字段组合在一起。具有相同索引的值将合并到单个对象中。可用于此目的

[
    {
        'qunatity' => 395,
        'image' => '5a3a13f237715637629.jpeg',
        'name' => 'Seller Test Product'
    },
    {
        'qunatity' => 295,
        'image' => '5a3b602654cfd527057.jpeg',
        'name' => 'Offline Product for Test'
    }
]
结果将是:

foreach($final as $product) {
    echo $product->name;
    echo $product->image;
    echo $product->quantity;
}
$a=array ( 0 => 395,1 => 295 );
$b=array ( 0 =>" 5a3a13f237715637629.jpeg" ,1 => "5a3b602654cfd527057.jpg" ) ;
$c=array ( 0 => "Seller Test Product",1 => "Offline Product for Test" );

Foreach($a as $key => $val){
    $res[$key]['qty'] = $val;
    $res[$key]['img'] = $b[$key];
    $res[$key]['desc'] = $c[$key];
}
Var_dump($res);
然后,您可以在
foreach
中对其进行如下处理:

$final = array_map(NULL, $quantityArray, $imageArray, $nameArray);

对于那些非常匆忙的人,以下对的调用将执行相同的技巧,但不会将数组字段映射到新多维数组中的特定键:

[
    [
        0 => 395,
        1 => '5a3a13f237715637629.jpeg',
        2 => 'Seller Test Product'
    ],
    [
        0 => 295,
        1 => '5a3b602654cfd527057.jpeg',
        2 => 'Offline Product for Test'
    ],
]
结果将是:

foreach($final as $product) {
    echo $product->name;
    echo $product->image;
    echo $product->quantity;
}
$a=array ( 0 => 395,1 => 295 );
$b=array ( 0 =>" 5a3a13f237715637629.jpeg" ,1 => "5a3b602654cfd527057.jpg" ) ;
$c=array ( 0 => "Seller Test Product",1 => "Offline Product for Test" );

Foreach($a as $key => $val){
    $res[$key]['qty'] = $val;
    $res[$key]['img'] = $b[$key];
    $res[$key]['desc'] = $c[$key];
}
Var_dump($res);

新创建的MLTIDIMENSIAL数组的内部数组将按照数组提供给的顺序填充。

您可以循环一个数组,并使用键从其他数组获取相应的值

array(2) {
  [0]=>
  array(3) {
    ["qty"]=> int(395)
    ["img"]=> string(25) " 5a3a13f237715637629.jpeg"
    ["desc"]=> string(19) "Seller Test Product"
  }
  [1]=>
  array(3) {
    ["qty"]=> int(295)
    ["img"]=> string(23) "5a3b602654cfd527057.jpg"
    ["desc"]=> string(24) "Offline Product for Test"
  }
}
输出:


您可以循环一个数组,并使用键从其他数组中获取相应的值

array(2) {
  [0]=>
  array(3) {
    ["qty"]=> int(395)
    ["img"]=> string(25) " 5a3a13f237715637629.jpeg"
    ["desc"]=> string(19) "Seller Test Product"
  }
  [1]=>
  array(3) {
    ["qty"]=> int(295)
    ["img"]=> string(23) "5a3b602654cfd527057.jpg"
    ["desc"]=> string(24) "Offline Product for Test"
  }
}
输出:


检查生成的数组到底应该是什么样子?
array\u merge
可能不是OP想要的,它只会创建一个由6个元素组成的数组,没有任何关系。如果使用array\u merge,我得到的结果是这样的。array([0]=>395[1]=>295)array([0]=>5a3a13f237715637629.jpeg[1]=>5a3b602654cfd527057.jpg)数组([0]=>卖家测试产品[1]=>离线测试产品)数组([0]=>5a3a13f237715637629.jpeg[1]=>5a3b602654cfd527057.jpg[2]=>卖家测试产品[3]=>离线测试产品[4]=>395[5]=>295)我如何以以下方式显示:“class=”img responsible“>检查生成的数组应该是什么样子?
array\u merge
可能不是OP想要的,它只会创建一个包含6个元素的数组,没有任何关系。如果我使用array\u merge,我会得到这样的结果。阵列([0]=>395[1]=>295)阵列([0]=>5a3a13f237715637629.jpeg[1]=>5a3b602654cfd527057.jpg)阵列([0]=>卖家测试产品[1]=>离线测试产品)阵列([0]=>5a3a13f237715637629.jpeg[1]=>5a3b602654cfd527057.jpg[2]=>卖家测试产品[3]=>离线测试产品[4]=>395[5]=>295)如何以以下方式显示:“class=”img responsive“>谢谢,伙计,效果很好。这正是我要找的。这是所有答案中最好的。+1谢谢,伙计,效果很好。这正是我要找的。这是所有答案中最好的。+1