[英]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.