我遇到这个小问题的麻烦。
让我们说,我有一个数组,就像这样:
Array
(
[0] => Size: tiny
[1] => Size: small
[2] => Size: big
[3] => Colour: yellow
[4] => Colour: black
[5] => Colour: blue
[6] => Length: short
[7] => Length: long
)
我想做的是,通过每个字段,我使用foreach,使用explode来划分每个数组,所以我现在有一个数组中的第一个属性(size,coluor,lenght ..等)和其他领域的其他价值。
结果我希望实际发现,如果所有属性(大小,颜色......)相同,或者它们是不同的。如果它们不同,我想把它放在数组中......大概这个例子会像这样返回数组:
Array
(
[0] => Array
(
[0] => Size: tiny
[1] => Size: small
[2] => Size: big
)
[1] => Array
(
[0] => Colour: yellow
[1] => Colour: black
[2] => Colour: blue
)
[2] => Array
(
[0] => Length: short
[1] => Length: long
)
)
感谢您的帮助和建议!玛特
答案 0 :(得分:1)
<?php
$array = Array
(
'0' => 'Size: tiny',
'1' => 'Size: small',
'2' => 'Size: big',
'3' => 'Colour: yellow',
'4' => 'Colour: black',
'5' => 'Colour: blue',
'6' => 'Length: short',
'7' => 'Length: long'
);
$map = array();
foreach($array as &$value)
{
$keyV = explode(': ',$value);
$map[$keyV[0]][] = $value;
}
$final = array_values($map); // throw away the keys
var_dump($final);
准确提供您想要的内容:
array(3) {
[0]=>
array(3) {
[0]=>
string(10) "Size: tiny"
[1]=>
string(11) "Size: small"
[2]=>
string(9) "Size: big"
}
[1]=>
array(3) {
[0]=>
string(14) "Colour: yellow"
[1]=>
string(13) "Colour: black"
[2]=>
string(12) "Colour: blue"
}
[2]=>
array(2) {
[0]=>
string(13) "Length: short"
[1]=>
string(12) "Length: long"
}
}
答案 1 :(得分:0)
<?php
$array = Array
(
'0' => 'Size: tiny',
'1' => 'Size: small',
'2' => 'Size: big',
'3' => 'Colour: yellow',
'4' => 'Colour: black',
'5' => 'Colour: blue',
'6' => 'Length: short',
'7' => 'Length: long'
);
foreach($array as &$value)
{
$value = explode(': ',$value);
}
$new_array = array();
foreach($array as $value)
{
$new_array[$value[0]][] = $value[1];
}
var_dump($new_array);
?>
会给:
array
'Size' =>
array
0 => string 'tiny' (length=4)
1 => string 'small' (length=5)
2 => string 'big' (length=3)
'Colour' =>
array
0 => string 'yellow' (length=6)
1 => string 'black' (length=5)
2 => string 'blue' (length=4)
'Length' =>
array
0 => string 'short' (length=5)
1 => string 'short' (length=5)