Php 如何合并数组的值
我有这个数组,我想把它转换成Php 如何合并数组的值,php,arrays,Php,Arrays,我有这个数组,我想把它转换成 Array ( [0] => Array ( [Handle] => example-t-shirt [Title] => Example T-Shirt [Vendor] => Acme [Type] => Shirts ) [1] => Array
Array
(
[0] => Array
(
[Handle] => example-t-shirt
[Title] => Example T-Shirt
[Vendor] => Acme
[Type] => Shirts
)
[1] => Array
(
[Handle] => example-t-shirt
[Title] => 1
[Vendor] => 2
[Type] => 3
)
[2] => Array
(
[Handle] => example-t-shirt
[Title] => 4
[Vendor] => 5
[Type] => 6
)
)
数组的另一个键,如句柄或标题,也不是固定的,它们也是动态的。
thanx提前首先需要将其生成为数组:
Array
(
[Handle] => example-t-shirt,example-t-shirt,example-t-shirt
[Title] => Example T-Shirt,1,4
[Vendor] => Acme,2,5
[Type] => Shirts,3,6
)
因此,您的最终代码将是:
foreach ($finalArray as $key => $value)
$finalArray[$key] = implode(", ", $value);
Fiddle:这里是一个使用array\u walk\u recursive的工作示例
Array
(
[Handle] => example-t-shirt, example-t-pant
[Title] => Example T-Shirt, Example T-Pant
[Vendor] => Acme, Meca
[Type] => Shirts, Pants
)
试试这个:
$mainArray = array(
array(
"Handle" => "example-t-shirt",
"Title" => "Example T-Shirt",
"Vendor" => "Acme",
"Type" => "Shirts"
),
array(
"Handle" => "example-t-pant",
"Title" => "Example T-Pant",
"Vendor" => "Meca",
"Type" => "Pants"
)
);
$final = array();
array_walk_recursive($mainArray, function($item, $key) use (&$final){
$final[$key] = isset($final[$key]) ? $item .', '. $final[$key] : $item;
});
var_dump($final);
这是数组的变换。请出示密码好吗?看起来您可以使用两个嵌套的foreach循环和.join来实现这一点。您能重新表述一件事吗?数组的多个键(如句柄或标题)也是不固定的,它们也是动态的?我似乎很不清楚您到目前为止尝试了什么?数组的键不是固定的,就像不确定每次键都是句柄、标题或供应商一样,这些都是动态的,取决于用户导入的csv文件的数据。@VJ。这适用于动态关键点。尝试一下,如果有效,接受答案
Array
(
[Handle] => example-t-shirt, example-t-pant
[Title] => Example T-Shirt, Example T-Pant
[Vendor] => Acme, Meca
[Type] => Shirts, Pants
)
$mainArray = array(
array(
"Handle" => "example-t-shirt",
"Title" => "Example T-Shirt",
"Vendor" => "Acme",
"Type" => "Shirts"
),
array(
"Handle" => "example-t-pant",
"Title" => "Example T-Pant",
"Vendor" => "Meca",
"Type" => "Pants"
)
);
$final = array();
array_walk_recursive($mainArray, function($item, $key) use (&$final){
$final[$key] = isset($final[$key]) ? $item .', '. $final[$key] : $item;
});
var_dump($final);
<?php
$temp = array(
array(
"Handle" => "example-t-shirt",
"Title" => "Example T-Shirt",
"Vendor" => "Acme",
"Type" => "Shirts"
),
array(
"Handle" => "example-t-shirt",
"Title" => 1,
"Vendor" => 2,
"Type" => 3
),
array(
"Handle" => "example-t-shirt",
"Title" => 4,
"Vendor" => 5,
"Type" => 6
)
);
$result = array();
foreach($temp as $t){
if (is_array($t)){
foreach ($t as $k=>$r){
if(array_key_exists($k,$result)){
$result[$k] .= ','.$r;
} else {
$result[$k] = $r;
}
}
}
}
echo '<pre>';
print_r($result);
?>