https://gist.github.com/jcranny/9465715
我有这个数组(例子)......
Array
(
[0] => Array
(
[series] => stdClass Object
(
[term_id] => 5
[name] => Moto2 2013
[slug] => moto2-2013
[term_group] => 0
[term_taxonomy_id] => 3
)
[race_number] => 77
[team] => Technomah carXpert
[constructor] => Suter
[machine] => Honda CBR600RR
)
[1] => Array
(
[series] => stdClass Object
(
[term_id] => 6
[name] => Moto2 2014
[slug] => moto2-2014
[term_group] => 0
[term_taxonomy_id] => 3
)
[race_number] => 15
[team] => La Fonte Tascaracing
[constructor] => Suter
[machine] => Honda CBR600RR
)
[2] => Array
(
[series] => stdClass Object
(
[term_id] => 7
[name] => Moto2 2015
[slug] => moto2-2015
[term_group] => 0
[term_taxonomy_id] => 3
)
[race_number] => 15
[team] => Mapfre Aspar Team Moto2
[constructor] => Suter
[machine] => Honda CBR600RR
)
)
现在我希望能够从每个区块获取信息。
例如,我想回应这些数据:
但我只希望回应与特定 [系列]相关的数据
我有 [系列] term_id所以这是获取相关数据的关键,但我很难让我的节点功能正常工作。
这是执行此操作的功能:
function node_modify_riders_array($rider_id)
{
$fields = get_field("rider_series_data", $rider_id);
foreach($fields as $field_key => $field_val)
{
$new_fields[$field_val["series"]] = $field_val;
}
return $new_fields;
}
然后,这就是我如何获得基于系列术语id的系列特定数据。
$rider_series_data = node_modify_riders_array($rider_id);
$series_id = $series[0]->term_id;
$team = $rider_series_data[$series_id]["team"];
$contstructor = $rider_series_data[$series_id]["constructor"];
$machine = $rider_series_data[$series_id]["machine"];
$race_number = $rider_series_data[$series_id]["race_number"];
但是有些事情是错的,我可以解决它。任何人都可以看到我出错的地方或帮我修复它。
提前非常感谢,真的很感激一些帮助。
问题是什么:
我的函数node_modify_riders_array返回null,这导致我的$team
,$contstructor
,$machine
和$race_number
也没有输出任何内容。
如果我在示例中回显$series_id
,我会得到6
哪个应该通过我的node_modify_riders_array函数并显示相关的数组值。但它没有输出任何东西,我没有错误。
这是我的完整代码,因此您可以看到我想要做的事情......
答案 0 :(得分:1)
您使用object
作为数组键,而不是term_id
对象的series
。
function node_modify_riders_array($rider_id)
{
$fields = get_field("rider_series_data", $rider_id);
foreach($fields as $field_key => $field_val)
{
$new_fields[$field_val["series"]->term_id] = $field_val;
//^^^^^^^^^ <--- add this
}
return $new_fields;
}