Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Foreach循环PHP一次停止_Php_Arrays_Foreach - Fatal编程技术网

Foreach循环PHP一次停止

Foreach循环PHP一次停止,php,arrays,foreach,Php,Arrays,Foreach,目前我有一个脚本,可以从数组中收集数据并将其推送到API,但由于某些原因,我无法让它一次添加多个数据 $data数组 array ( [0] => Array ( [_id] => 0 [_source] => App [_source_id] => 790006230e91dd6279a42a814bf5965a.jpg [_client_ids] =

目前我有一个脚本,可以从数组中收集数据并将其推送到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;
        }

    }
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”循环。