首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >遍历Array并获得不同的ids

遍历Array并获得不同的ids
EN

WordPress Development用户
提问于 2019-11-24 04:32:39
回答 2查看 1.4K关注 0票数 0

我做了一个循环,回顾了我参加的所有演出,有些演出有相同的歌曲。

下面是该数组的结果:http://snippi.com/s/k80v7pe

现在我想要一个数组,列出所有不同的歌曲id。所以我想看看我听过的所有歌曲:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//get the songs field get_field('songs')
foreach ($postIds as $postId){ 
    array_push($songIds, get_field('songs', $postId));  
} 

//Over here I'm trying to print all the ID's of the song
foreach ($songIds as $songId) {
    echo $songId->ID;
}

但我得到了以下错误:

注意:尝试获取非对象在

是因为数组$songIds在数组中有一个数组吗?

EN

回答 2

WordPress Development用户

发布于 2019-11-24 05:49:43

不,这是因为您将数组视为一个对象,而PHP并不会自动转换这些类型。若要从使用的对象中获取单个元素,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$my_object->Element1;

若要从数组中获取单个元素,请使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$my_array[Element1];

你甚至可以嵌套数组。因此,如果您有$my_array,其中每个元素都是另一个数组,则可以从arrayY获得如下所示的elementX:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$my_array[arrayY][elementX];

显然,在您的例子中,您有一个数组,它包含一个数组,它包含对象,相当于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$my_array[arrayY][elementX]->componentZ
票数 1
EN

WordPress Development用户

发布于 2019-11-26 04:27:02

因为$songIds是数组中的一个数组,所以我必须在彼此之间执行两个循环。

下面的代码推送了新数组$allSongs中来自不同数组的所有post id。

这样我就有了一个包含所有id的数组,有些id将是复制的,因为有些歌曲会在所有的演唱会上播放1次以上。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach ($songIds as $songId) {
    foreach ($songId as $key => $value) {
        array_push($allSongs, $value->ID);
    }
}

//all songs
print_r($allSongs);

若要仅检索唯一id,可以使用数组函数array_unique从数组中删除重复项。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$uniqueSongs = array_unique($allSongs, SORT_REGULAR);
print_r($uniqueSongs);
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/353219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文