PHP只打印数组中的唯一值



我希望有人能帮我解决一个问题,我只从数组中返回唯一值。

我从我喜欢的500像素API照片中提取数据。我想从这个数组中提取照片的类别ID。以下在一定程度上完成了这项工作,但我只想显示唯一的值(最终我想从与ID相关的标签中构建导航)。

if($json){
$obj = json_decode($json); 
}
else {
print "<p>Currently, No Service Available.</p>";
} 

foreach ($obj->photos as $photo){

print $photo->category;
} 

这只是返回一个字符串9924121081221382611121281221121812。这些是我喜欢的照片的正确类别ID,但我只想显示9、1、2等一次。

我花了一些时间在PHP手册和这里,并尝试了以下

if($json){
$obj = json_decode($json); 
}
else {
print "<p>Currently, No Service Available.</p>";
} 

foreach ($obj->photos as $photo){
$test=$photo->category;
$unique=str_split($test);
print array_unique($unique);
}

但这只会返回一个字符串ArrayArrayArrayArrayArrayArray

如果我尝试:

foreach ($obj->photos as $photo){
print array_unique($photo->category);
}

我得到警告:array_unique()[function.array unique]:参数应该是一个数组。任何帮助都将不胜感激!

设置一个数组来存储类别。用类别ID填充它。使其仅包含唯一值。回声。

$categories=array();
foreach ($obj->photos as $photo){
$categories[]=$photo->category;
}
$categories=array_unique($categories);
print implode(', ', $categories); // will show a string 9, 1, 2
print_r($categories); // will show the values as an array 
// you may want to view page source to read them easily

http://uk3.php.net/function.implode
http://uk1.php.net/print_r

另一种方法是设置数组关键字$categories[$photo->category]=true;,然后使用array_keys()

相关内容

  • 没有找到相关文章

最新更新