数组拆分和获取唯一数组ID

时间:2013-07-05 13:23:54

标签: php arrays split

我有这样的数组,其中每个键值包含图片的元信息除以逗号 对于元信息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种颜色。

你可以帮我吗?这些阵列对我来说真的很难。

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

中的颜色