循环遍历PHP对象数组
如何循环遍历PHP对象数组(对象是带有标题和价格的书籍),并按字母顺序输出标题位于字母R之后的书籍? 谢谢 我是否应该创建一个包含字母的数组,然后将该数组与book的数组合并(在本例中为循环遍历PHP对象数组,php,Php,如何循环遍历PHP对象数组(对象是带有标题和价格的书籍),并按字母顺序输出标题位于字母R之后的书籍? 谢谢 我是否应该创建一个包含字母的数组,然后将该数组与book的数组合并(在本例中为bookInformation) 教材{ 公有产权; 公帑(元);; 公共功能构造($title,$price){ $this->title=$title; $this->price=$price; } 公共职能信息(){ echo$this->title.“is.”$this->price.“”; } } $
bookInformation
)
教材{
公有产权;
公帑(元);;
公共功能构造($title,$price){
$this->title=$title;
$this->price=$price;
}
公共职能信息(){
echo$this->title.“is.”$this->price.“
”;
}
}
$bookOne=新书(“购物中心”,13.95);
$bookTwo=新书(“遗嘱”,23.99);
$bookOne->info();
$bookTwo->info();
$bookInformation=[$bookOne,$bookotwo];
您可以使用查找标题位于R
之后的所有书籍,然后使用按标题对该列表进行排序,然后打印排序列表中的第一个元素:
$fBooks = array_filter($bookInformation, function ($v) { return substr($v->title, 0, 1) > 'R'; });
if (count($fBooks)) {
usort($fBooks, function ($a, $b) { return strcmp($a->title, $b->title); });
print_r($fBooks[0]);
}
else {
echo "no book found!";
}
使用数组\u列
作用
这里
$title
返回title数组@Gustavo不用担心。我很高兴能帮上忙。您可以直接在对象数组上使用array\u column
。
$fBooks = array_filter($bookInformation, function ($v) { return substr($v->title, 0, 1) > 'R'; });
if (count($fBooks)) {
usort($fBooks, function ($a, $b) { return strcmp($a->title, $b->title); });
print_r($fBooks[0]);
}
else {
echo "no book found!";
}
$Arraya = [ 'ObjA' => { 'title' => "booka", 'page' => 27, }, 'Objb' => { 'title' => "bookb", 'page' => 37, }, ];
$ArrayofArray = json_decode(json_encode($Arraya), 1);
$titles = array_column($ArrayofArray, "title");