array(2) {
[1] => array(3) {
["id"] => string(1) "1"
["name"] => string(12) "尺码"
["value"] => array(2) {
[0] => array(1) {[160] => string(9) "S"}
[1] => array(1) {[165] => string(9) "M"}
}
}
[2] => array(3) {
["id"] => string(1) "2"
["name"] => string(12) "颜色"
["value"] => array(2) {
[0] => array(1) {[1000] => string(12) "白色"}
[1] => array(1) {[1001] => string(12) "黑色"}
}
}
}
现在想转化为这种的:
array(2) {
[1] => array(3) {
["id"] => string(1) "1"
["name"] => string(12) "尺码"
["value"] => array(2) {
[0] => array(1) {['tip'] => int(160) ['type'] => string(9) "S"}
[1] => array(1) {['tip'] => int(165) ['type'] => string(9) "M"}
}
}
[2] => array(3) {
["id"] => string(1) "2"
["name"] => string(12) "颜色"
["value"] => array(2) {
[0] => array(1) {['tip'] => int(1000) ['type'] => string(12) "白色"}
[1] => array(1) {['tip'] => int(1001) ['type'] => string(12) "黑色"}
}
}
}
说白了就是在每一个数组的value里面的值换一下,由
[0] => array(1) {[160] => string(9) "S"} 变为这种: [0] => array(1) {['tip'] => int(160) ['type'] => string(9) "S"}
转化完然后再回到他当前的数组中。
下面是我的代码:
$tempSpecOne = array();
$tempSpecTwo = array();
foreach ($result['spec_array'] as $key => $val) {
foreach ($val['value'] as $tk => $tv) {
$tempSpecTwo[] = array(
'tip' => key($tv),
'type' => current($tv)
);
}
if (!isset($tempSpecOne[$val['id']])) {
$tempSpecOne[$val['id']] = array(
'id' => $val['id'],
'name' => $val['name'],
'value' => $tempSpecTwo
);
}
}
dump($tempSpecTwo);
运行出来数据为:
array(2) {
[1] => array(3) {
["id"] => string(1) "1"
["name"] => string(12) "尺码"
["value"] => array(2) {
[0] => array(1) {['tip'] => int(160) ['type'] => string(9) "S"}
[1] => array(1) {['tip'] => int(165) ['type'] => string(9) "M"}
}
}
[2] => array(3) {
["id"] => string(1) "2"
["name"] => string(12) "颜色"
["value"] => array(4) {
[0] => array(2) {["tip"] => int(160)["type"] => string(9) "S"}
[1] => array(2) {["tip"] => int(165)["type"] => string(9) "M"}
[2] => array(2) {["tip"] => int(1000)["type"] => string(12) "白色"}
[3] => array(2) {["tip"] => int(1001)["type"] => string(12) "黑色"}
}
}
}
在第二个数组中出现了第一个数组的元素,应该是我没判断好,请大家给看一下,指正一下问题所在,多谢
最佳答案