我正在从Wordpress CPT中获取帖子元,它会分别返回多个字符串形式而不是数组,如下所示:
$data = $calendar->data();
foreach ($data as $event) {
$days = get_post_meta( $event->ID, 'sp_day', true );
var_dump($days);
}
字符串(1)“ 1”字符串(1)“ 1”字符串(1)“ 1”字符串(1)“ 1”字符串(1)“ 1” 字符串(1)“ 1”字符串(1)“ 2”字符串(1)“ 2”字符串(1)“ 2”字符串(1)“ 2” 字符串(1)“ 2”字符串(1)“ 2”字符串(1)“ 3”字符串(1)“ 3”字符串(1)“ 3” 字符串(1)“ 3”字符串(1)“ 3”字符串(1)“ 3”字符串(1)“ 4”字符串(1)“ 4” 字符串(1)“ 4”字符串(1)“ 4”字符串(1)“ 4”字符串(1)“ 4”字符串(0)“” 字符串(0)“”字符串(0)“”字符串(0)“”字符串(0)“”字符串(0)“”
我试图将其转换为$days = array(get_post_meta( $event->ID, 'sp_day', true ));
这样的数组,转储值是:
array(1){[0] =>字符串(1)“ 1”}数组(1){[0] =>字符串(1)“ 1”} 数组(1){[0] =>字符串(1)“ 1”}数组(1){[0] =>字符串(1)“ 1”} 数组(1){[0] =>字符串(1)“ 1”}数组(1){[0] =>字符串(1)“ 1”} 数组(1){[0] =>字符串(1)“ 2”}数组(1){[0] =>字符串(1)“ 2”} 数组(1){[0] =>字符串(1)“ 2”}数组(1){[0] =>字符串(1)“ 2”} 数组(1){[0] =>字符串(1)“ 2”}数组(1){[0] =>字符串(1)“ 2”} 数组(1){[0] =>字符串(1)“ 3”}数组(1){[0] =>字符串(1)“ 3”} 数组(1){[0] =>字符串(1)“ 3”}数组(1){[0] =>字符串(1)“ 3”} 数组(1){[0] =>字符串(1)“ 3”}数组(1){[0] =>字符串(1)“ 3”} 数组(1){[0] =>字符串(1)“ 4”}数组(1){[0] =>字符串(1)“ 4”} 数组(1){[0] =>字符串(1)“ 4”}数组(1){[0] =>字符串(1)“ 4”} 数组(1){[0] =>字符串(1)“ 4”}数组(1){[0] =>字符串(1)“ 4”} array(1){[0] =>字符串(0)“”} array(1){[0] =>字符串(0)“”} array(1){[0] =>字符串(0)“”} array(1){[0] =>字符串(0)“”} 数组(1){[0] =>字符串(0)“”}数组(1){[0] =>字符串(0)“”}
比我尝试过array_merge()
和array_unique()
以上步骤均未解决问题。如您所见,我们有多次重复的值,相反,我希望它们唯一,以便仅一次获得每个值,例如“ 1、2、3、4、5等”。
建议受到高度赞赏
答案 0 :(得分:1)
您可以在for循环之前添加一个空数组,在for循环内部可以检查该项目是否存在于数组中,如果不存在,则将其添加到数组中。
$data = $calendar->data();
$result = [];
foreach ($data as $event) {
$days = get_post_meta( $event->ID, 'sp_day', true );
if(! in_array($days, $result)) {
$result[] = $days;
}
}
var_dump($result);