我希望有人能帮我解决一个问题,我只从数组中返回唯一值。
我从我喜欢的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()
。