我希望有人可以帮我解决一个问题,我只返回数组中的唯一值。
我正在从500px 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;
}
这只返回一个字符串99241210812231382611121281221121812。这些是我喜欢的照片的正确类别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);
}
但这只会返回一个刺痛ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
如果我尝试:
foreach ($obj->photos as $photo){
print array_unique($photo->category);
}
我得到警告:array_unique()[function.array-unique]:参数应该是一个数组。任何帮助将不胜感激!
答案 0 :(得分:1)
设置数组以存储类别。用类别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()
。