Foreach循环PHP一次停止
目前我有一个脚本,可以从数组中收集数据并将其推送到API,但由于某些原因,我无法让它一次添加多个数据 $data数组Foreach循环PHP一次停止,php,arrays,foreach,Php,Arrays,Foreach,目前我有一个脚本,可以从数组中收集数据并将其推送到API,但由于某些原因,我无法让它一次添加多个数据 $data数组 array ( [0] => Array ( [_id] => 0 [_source] => App [_source_id] => 790006230e91dd6279a42a814bf5965a.jpg [_client_ids] =
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;
}
}
public函数保存($data){
$submissionManager=newsubmissionmanager($this->container);
$returndata=array();
foreach($数据作为$条目)
{
$this->mustBeGranted('PERM_SUBMISSION_CREATE');
$saved=array();
$client_id=explode(',',$entry['''u client_id']);
$parent_id=分解(“,”,$entry[“'u parent_id');
$length=计数($client_id);
对于($i=0;$i<$length;$i++){
$input=array\U merge($entry,array(
'client_id'=>isset($client_id[$i])?$client_id[$i]:0,
'parent\u id'=>isset($parent\u id[$i])?$parent\u id[$i]:0,
“\u source\u id”=>$entry['\u source\u id']
));
$saved[]=$submissionManager->createSubmission($input);
}
$returndata[$entry[''u id']]=$saved;
}
}
基本上,它只会将第一个数组推送到API,而不会将第二个数组推送到API,尽管我已经为每个数组添加了一个 从foreach循环中删除$saved=array(),并将其置于循环之前。每次循环开始时,您都分配空数组我想说的是,
$entry[''u id']
的值可能没有改变,因此您将重新分配给相同的数组键
试着简单地使用:
$returndata[]=$saved代码>抱歉,修复了与我的createSubmission类有关的问题。。。my bad您的$returndata
是什么样子的,您实际上是什么时候进行保存的?您使用explode()
的具体目的是什么?在两个内部数组中,\u client\u id
和\u parent\u id
都是单整数。在某些情况下,这些将是逗号分隔的字符串吗?我认为他正在返回$returndata
,因此清除$saved
实际上对他的情况有帮助。清空保存的数组似乎是正常的?它只是用于“for”循环。