Php将键值添加到foreach循环中的关联数组中
我从api端点获取json数据,我想向我获取的数组添加一个键值。这是我的职责:Php将键值添加到foreach循环中的关联数组中,php,arrays,json,Php,Arrays,Json,我从api端点获取json数据,我想向我获取的数组添加一个键值。这是我的职责: $magazines = Magazine::all(); foreach ($magazines as $magazine) { $result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=l
$magazines = Magazine::all();
foreach ($magazines as $magazine) {
$result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=latest');
$issues[] = json_decode($result, true);
}
foreach ($issues as $issue) {
Issue::create([
''
'title' => $issue['papers'][0]['title'],
'date' => $issue['papers'][0]['date'],
'foldername' => $issue['papers'][0]['foldername'],
'thumb' => $issue['papers'][0]['thumb'],
'thumbmedium' => $issue['papers'][0]['thumbmedium'],
]);
}
我从端点获取的数组如下所示:
array:24 [▼
0 => array:1 [▼
"papers" => array:1 [▼
0 => array:11 [▼
"title" => "News- 2014-10-22"
"date" => "2014-10-22"
"expires" => ""
"catalog" => 24
"foldername" => "News"
"folder" => 4965
"pages" => 132
"sectionstarts" => "1"
"sectioncount" => 1
"thumb" => "www.customer.pages.com/news/24/teasers/small.jpg"
"thumb_medium" => "www.customer.pages.com/news/24/teasers/medium.jpg"
]
]
]
1 => array:1 [▶]
2 => array:1 [▶]
3 => array:1 [▶]
4 => array:1 [▶]
5 => array:1 [▶]
6 => array:1 [▶]
7 => array:1 [▶]
8 => array:1 [▶]
9 => array:1 [▶]
10 => array:1 [▶]
11 => array:1 [▶]
12 => array:1 [▶]
13 => array:1 [▶]
14 => array:1 [▶]
15 => array:1 [▶]
16 => array:1 [▶]
17 => array:1 [▶]
18 => array:1 [▶]
19 => array:1 [▶]
20 => array:1 [▶]
21 => array:1 [▶]
22 => array:1 [▶]
23 => array:1 [▶]
]
因此,在我的foreach循环中,我想向上述每个
'papers'
数组添加一个键值对'magazineId'=>$magazine->id
。因此,稍后我可以使用$issue['papers'][0]['magazineId']
获取$magazine->id的值。不知道该怎么做?对YOUR代码的更正应该可以做到:
foreach ($magazines as $magazine) {
$result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=latest');
$issue = json_decode($result, true);
foreach($issue['papers'] as $paperKey => $paper) {
$issue['papers'][$paperKey]['magazineId'] = $magazine->id;
}
$issues[] = $issue;
}
foreach ($issues as $issue) {
Issue::create([
'magazineId' => $issue['papers'][0]['magazineId'],
'title' => $issue['papers'][0]['title'],
'date' => $issue['papers'][0]['date'],
'foldername' => $issue['papers'][0]['foldername'],
'thumb' => $issue['papers'][0]['thumb'],
'thumbmedium' => $issue['papers'][0]['thumbmedium'],
]);
}
第二个版本中,对于单个问题,您只有一个magazineId密钥:
foreach ($magazines as $magazine) {
$result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=latest');
$issue = json_decode($result, true);
$issue['magazineId'] = $magazine->id;
$issues[] = $issue;
}
对yoiur代码的此更正应起到以下作用:
foreach ($magazines as $magazine) {
$result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=latest');
$issue = json_decode($result, true);
foreach($issue['papers'] as $paperKey => $paper) {
$issue['papers'][$paperKey]['magazineId'] = $magazine->id;
}
$issues[] = $issue;
}
foreach ($issues as $issue) {
Issue::create([
'magazineId' => $issue['papers'][0]['magazineId'],
'title' => $issue['papers'][0]['title'],
'date' => $issue['papers'][0]['date'],
'foldername' => $issue['papers'][0]['foldername'],
'thumb' => $issue['papers'][0]['thumb'],
'thumbmedium' => $issue['papers'][0]['thumbmedium'],
]);
}
第二个版本中,对于单个问题,您只有一个magazineId密钥:
foreach ($magazines as $magazine) {
$result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=latest');
$issue = json_decode($result, true);
$issue['magazineId'] = $magazine->id;
$issues[] = $issue;
}
你能试试下面的代码吗?在第一个foreach中,我向$issue添加了一个数组
$magazines = Magazine::all();
foreach ($magazines as $magazine) {
$result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=latest');
$issues[] = array('magazine_id' => $magazine->id, 'result' => json_decode($result, true);
}
foreach ($issues as $issue) {
Issue::create([
'magazine_id' => $issue['magazine_id'],
'title' => $issue['result']['papers'][0]['title'],
'date' => $issue['result']['papers'][0]['date'],
'foldername' => $issue['result']['papers'][0]['foldername'],
'thumb' => $issue['result']['papers'][0]['thumb'],
'thumbmedium' => $issue['result']['papers'][0]['thumbmedium'],
]);
}
你能试试下面的代码吗?在第一个foreach中,我向$issue添加了一个数组
$magazines = Magazine::all();
foreach ($magazines as $magazine) {
$result = file_get_contents('http://customer.pages.com/?customer=' . $magazine->visio_link_prefix . '&action=latest');
$issues[] = array('magazine_id' => $magazine->id, 'result' => json_decode($result, true);
}
foreach ($issues as $issue) {
Issue::create([
'magazine_id' => $issue['magazine_id'],
'title' => $issue['result']['papers'][0]['title'],
'date' => $issue['result']['papers'][0]['date'],
'foldername' => $issue['result']['papers'][0]['foldername'],
'thumb' => $issue['result']['papers'][0]['thumb'],
'thumbmedium' => $issue['result']['papers'][0]['thumbmedium'],
]);
}
然后我得到这种数组0=>array:2[▼ “magazineId”=>6 0=>数组:1[▼ “文件”=>数组:1[▼ 0=>数组:11[▼ ...数组的其余部分]]]]
如果可能的话,我想把杂志id
放在文件中数组中hi@Marco;@krasipenkov的第一个代码块可能适合你。你试过了吗?然后我得到了这种数组0=>数组:2[▼ “magazineId”=>6 0=>数组:1[▼ “文件”=>数组:1[▼ 0=>数组:11[▼ ...阵列的其余部分]]]
如果可能的话,我想把杂志id
放在论文
数组中hi@Marco;@krasipenkov的第一个代码块可能适合你。你试过了吗?我得到了未定义的索引:你答案第一部分的论文,而第二部分我杂志->id不在论文数组中。你能提供var_du吗$issue=json_decode($result,true);array(size=1)'papers'=>array(size=1)0=>array(size=11)'title'=>string'Mamma-2014-10-22'(length=17)'date'=>string'2014-10-22'(length=10)'expires'=>string'(length=0)'catalog'=>int24…
我得到了未定义的索引:第一部分答案的论文,第二部分我的杂志->id不在论文数组中。请在$issue=json\u decode($result,true);array(size=1)'papers'=>array(size=1)之后立即提供$issue的变量转储0=>数组(大小=11)'title'=>字符串'Mamma-2014-10-22'(长度=17)'date'=>字符串'2014-10-22'(长度=10)'expires'=>字符串“”(长度=0)“catalog'=>int 24…
请编辑来自终结点的转储,因为它不正确。这是$issues
的转储。终结点的转储如下:数组(大小=1)'papers'=>array(大小=1)0=>array(大小=11)'title'=>string'Mamma-2014-10-22'(长度=17)'date'=>string'2014-10-22'(长度=10)'expires'=>string'(长度=0)'catalog'=>int 24…请编辑来自终结点的转储,因为它不正确。这是$issues
的转储。终结点的转储如下:数组(大小=1)'papers'=>array(大小=1)0=>array(大小=11)'title'=>string'Mamma-2014-10-22'(长度=17)'date'=>string'2014-10-22'(长度=10)'expires'=>string'(长度=0)'catalog'=>int24。。。