我有这样的数组,其中每个键值包含图片的元信息除以逗号
对于元信息A,B,C
,A
表示图片的ID,B
图片的顺序和C
颜色。
Array ( [0] => 657,1,1
[1] => 658,2,1
[2] => 659,3,1
[3] => 660,4,1
[4] => 661,5,1
[5] => 662,6,1
[6] => 663,7,1
[7] => 875,15,3
[8] => 877,17,3
[9] => 874,14,3
[10] => 869,9,2
[11] => 872,12,2
[12] => 959,13,2 )
我想从所有数组值中获取唯一颜色列表。在这样的例子中,它将是
echo element[0]; result = 1
echo element[1]; result = 2
echo element[2]; result = 3 <- edited
等等,如果数组中有超过3种颜色。
你可以帮我吗?这些阵列对我来说真的很难。
答案 0 :(得分:1)
我认为这可能是你想要的:
$element = array_values(array_unique(array_map(function($x) {
$meta = explode(',', $x);
return $meta[2];
}, $input)));
sort($element);
答案 1 :(得分:0)
你想做这样的事吗?
$array = array ( '657,1,1', '658,2,1', '659,3,1' );
function getColor($a) {
$a = explode(',', $a);
return $a[2];
}
echo getColor($array[0]);
答案 2 :(得分:0)
如果我理解你想要的......
$colors = array();
$list = Array ( 0 => '657,1,1', 1 => '658,2,1', 2 => '659,3,1', 3 => '660,4,1', 4 => '661,5,1', 5 => '662,6,1', 6 => '663,7,1', 7 => '875,15,3', 8 => '877,17,3', 9 => '874,14,3', 10 => '869,9,2', 11 => '872,12,2', 12 => '959,13,2' );
foreach ($list as $k=>$v){
list( $id, $order, $color ) = explode(',',$v);
$colors[] = $color;
}
$colors = array_unique($colors);
sort($colors);
...将创建一个具有...
的数组$colors
Array ( [0] => 1 [1] => 2 [2] => 3 )
...其中1,2,3是$list