我有一个看起来像这样爆炸的foreach到新阵列
Array
(
[sections] => Array
(
[0] => Array
(
[id] => 115000089967
[url] => xxxxx
[html_url] => ArticleHTML1
[category_id] => 204458828
[position] => 0
[sorting] => manual
[created_at] => 2016-12-19T14:56:23Z
[updated_at] => 2017-02-03T08:23:04Z
[name] => ArticleName1
[description] =>
[outdated] =>
)
[1] => Array
(
[id] => 207077828
[url] => xxxxxx
[html_url] => ArticleHTML2
[category_id] => 204458828
[position] => 1
[sorting] => manual
[created_at] => 2016-11-14T09:28:30Z
[updated_at] => 2017-02-02T09:15:42Z
[name] => ArticleName2
[description] =>
[outdated] =>
)
)
[page] => 1
[per_page] => 30
[page_count] => 1
[sort_by] => position
[sort_order] => asc
)
我已经成功地用foreach迭代这个JSON API响应,所以回报看起来是这样的:
ArticleName1 ArticleHTML1
ArticleName2文章HTML 2
所以我从每个这样的[姓名]和[html_url]:
$details1 = array('name');
$details2 = array('html_url');
foreach($sections['sections'] as $article) {
foreach($details1 as $detail) {
echo "$article[$detail] ";
}
foreach($details2 as $detail) {
echo "$article[$detail]\n";
}
}
但我想接下来的是,这种反应应该膨胀到一个单一阵列是这样的:
Array
(
[0] => ArticleName1 ArticleHTML1
[1] => ArticleName2 ArticleHTML2
)
我已经成功地爆炸那些个别阵列:
foreach($sections['sections'] as $article) {
foreach($details1 as $detail) {
$name = "$article[$detail] ";
}
foreach($details2 as $detail) {
$url = "$article[$detail]\n";
}
$string = $name . $url;
$array = explode(' ', $string, 1);
print_r($array);
}
但我只需要一个数组。
怎么样?我迷路了,或者只是不明白,我什至关闭?
编辑
这里的一点是,JSON转储是相当大的,我只需要几件事情(名称和URL)。所以我一直在想,我首先抓住了整个事情,然后我只是拿名字和网址(比如第一个foreach在做),然后把这些放回数组中。因为从这些名字和网址我只需要最后12个键,并从sinlge数组中取出这些将很容易。
如果我能理清我不想要的钥匙,那么这将是完美的。这将解决我的问题。然后,我不需要一个新的阵列等。
我不明白你为什么合并,然后立即爆炸'$ string'?另外你如何使用foreach的方式是非常有缺陷的 - '$ name'和'$ url'只会是最后一个等。 –
是的。这里的事情是JSON转储非常大,我只需要几件事(名称和网址)。所以我在想,我先抓住整件事,然后梳理出我想要的,然后把它们放在一起。 因为从那些我只需要最后12个键。如果我能够首先解决我不想要的钥匙,这将是完美的。这将解决我的问题。然后我不需要一个新的数组。 – Taapsa