[英]In PHP Stop only “IF” once it true in Foreach loop and Continue Foreach
[英]Foreach Loop PHP Once Stop
目前,我有一個腳本,該腳本將從數組中收集數據並將其推送到API,但是由於某種原因,我無法讓它一次添加多個。
$ data數組
array
(
[0] => Array
(
[_id] => 0
[_source] => App
[_source_id] => 790006230e91dd6279a42a814bf5965a.jpg
[_client_ids] => 2
[_parent_ids] => 0
[_image] => blank.jpg
[_title] => test1
[_body] => test1
)
[1] => Array
(
[_id] => 1
[_source] => App
[_source_id] => b3a5a6df0cf1dfc30882b20f8a493092.jpg
[_client_ids] => 2
[_parent_ids] => 0
[_image] => blank.jpg
[_title] => test2
[_body] => test2
)
)
PHP
public function save($data) {
$submissionManager = new SubmissionManager($this->container);
$returndata = array();
foreach( $data as $entry )
{
$this->mustBeGranted('PERM_SUBMISSION_CREATE');
$saved = array();
$client_ids = explode(',', $entry['_client_ids']);
$parent_ids = explode(',', $entry['_parent_ids']);
$length = count($client_ids);
for($i = 0; $i < $length; $i++){
$input = array_merge($entry, array(
'client_id' => isset($client_ids[$i]) ? $client_ids[$i] : 0,
'parent_id' => isset($parent_ids[$i]) ? $parent_ids[$i] : 0,
'_source_id' => $entry['_source_id']
));
$saved[] = $submissionManager->createSubmission($input);
}
$returndata[ $entry['_id']] = $saved;
}
}
基本上,即使我添加了for-each,它也只會將第一個數組推送到API,而不會將第二個數組推送到API。
從foreach循環中刪除$ saved = array()並將其放在循環之前。 您每次循環開始時都分配空數組
我想說的是$entry['_id']
值沒有改變,因此您正在重新分配給相同的數組鍵。
嘗試簡單地使用:
$returndata[] = $saved;
對不起,已解決的問題與我的createSubmission類有關……我的錯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.