0

我有这样的数组,其中每个键值包含用逗号分隔的图片元信息。
对于元信息A,B,CA代表图片的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 种颜色。

你能帮我吗?这些数组的东西对我来说真的很难。

4

3 回答 3

1

我想这可能是你想要的:

$element = array_values(array_unique(array_map(function($x) {
  $meta = explode(',', $x);
  return $meta[2];
}, $input)));
sort($element);
于 2013-07-05T13:35:05.423 回答
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]);
于 2013-07-05T13:32:43.340 回答
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

于 2013-07-05T13:34:03.993 回答