我有三个以下阵列。
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 } ?>
欢迎任何帮助。
答案 0 :(得分:5)
所以你真正想要的是将所有数组的所有字段组合在一起。具有相同索引的值应合并为单个对象。 array_map()
可以用于此目的。
$final = array_map(function($quantity, $image, $name) {
return (object)['quantity' => $quantity, 'image' => $image, 'name' => $name];
}, $quantityArray, $imageArray, $nameArray);
结果将是:
[
{
'qunatity' => 395,
'image' => '5a3a13f237715637629.jpeg',
'name' => 'Seller Test Product'
},
{
'qunatity' => 295,
'image' => '5a3b602654cfd527057.jpeg',
'name' => 'Offline Product for Test'
}
]
然后,您可以在foreach
中解决这些问题:
foreach($final as $product) {
echo $product->name;
echo $product->image;
echo $product->quantity;
}
对于那些真正匆忙的人,以下对array_map()
的调用将执行相同的操作,但不将数组字段映射到新的多维数组中的特定键:
$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'
],
]
新创建的mltidimensinal数组的内部数组将按照提供给array_map()
的数组的顺序填充。
答案 1 :(得分:1)
您可以循环一个数组并使用键从其他数组中获取相应的值。
$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);
输出:
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"
}
}
答案 2 :(得分:-1)
示例代码
<?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);
?>