Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环遍历PHP对象数组_Php - Fatal编程技术网

循环遍历PHP对象数组

循环遍历PHP对象数组,php,Php,如何循环遍历PHP对象数组(对象是带有标题和价格的书籍),并按字母顺序输出标题位于字母R之后的书籍? 谢谢 我是否应该创建一个包含字母的数组,然后将该数组与book的数组合并(在本例中为bookInformation) 教材{ 公有产权; 公帑(元);; 公共功能构造($title,$price){ $this->title=$title; $this->price=$price; } 公共职能信息(){ echo$this->title.“is.”$this->price.“”; } } $

如何循环遍历PHP对象数组(对象是带有标题和价格的书籍),并按字母顺序输出标题位于字母R之后的书籍? 谢谢

我是否应该创建一个包含字母的数组,然后将该数组与book的数组合并(在本例中为
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");