我需要修改一个PHP数组,我真的很难使用它:(
Array ( [0] => product_category-big-savings [1] => product_category-for-men [2] => product_category-jeans [3] => brand-3-1-phillip-lim [4] => size-10 [5] => ) 这就是数组的输出,我想把它转换成这样:
Array ( [product_category] => big-savings, for-men, jeans [brand] => 3-1-phillip-lim [size] => 10 ) 我真的不能掌握它的诀窍。以下是我尝试过的方法:
foreach($arr as $k => $v) {
if ($v != '') {
$arr = explode('-', $v, 2);
$terms[] = $arr[1];
$taxes[] = $arr[0];
}
}第一个数组由键/值组成。这些值是我的目标术语:例如:
product_category-big-savings是我的目标,我用它将类别从它的值中分离出来:
$arr = explode('-', $v, 2);这给了我:
product_category ->
big-savings ->诸若此类。如何在以product_category为关键字的数组中对后面的所有产品类别进行分组?诸若此类。
但在那之后我得到了一个更复杂的形式。我假设有一个简单的公式来滚动这个数组,并将其转换为所需的格式。如有任何帮助,敬请惠顾。
发布于 2012-11-04 15:53:44
list($key, $value) = explode('-', $v, 2);
if (isset($result[$key])) {
$result[$key] .= ', ' . $value;
} else {
$result[$key] = $value;
}发布于 2012-11-04 15:57:42
您应该改为这样做:
foreach($arr as $k => $v) {
if ($v != '') {
$arr = explode('-', $v, 2);
if (!isset($result[$arr[0]])){
$result[$arr[0]] = $result[$arr[1]];
}
else {
$result[$arr[0]] .= ', '.$result[$arr[1]];
}
}
}https://stackoverflow.com/questions/13216993
复制相似问题