Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Php 在调用类内编写foreach_Php - Fatal编程技术网

Php 在调用类内编写foreach

Php 在调用类内编写foreach,php,Php,嗨,我正在使用这个php代码 $data = new $models([ 'number' => $row[0], 'name' => $row[1], ]); 像这样工作很好,但我想要的是,我不知道键“编号”和“名称”,如果我想让它们来自这样的数组 $array = ['name','number','anything']; $data = new $models([ foreach($array as $key => $arr) {

嗨,我正在使用这个php代码

$data = new $models([
    'number' => $row[0],
    'name' => $row[1],

]);
像这样工作很好,但我想要的是,我不知道键“编号”和“名称”,如果我想让它们来自这样的数组

$array = ['name','number','anything'];
$data = new $models([
    foreach($array as $key => $arr)
    {
       $arr => $row[$key];
    }
]);
我怎么能做这样的事。。 正在创建新类中调用foreach。。
谢谢..

只要它们的元素数量与您想要的顺序相同,就可以组合它们:

$array = ['name', 'number', 'anything'];
$data  = new $models(array_combine($array, $row));
您可以在一行中完成:

$data  = new $models(array_combine(['name', 'number', 'anything'], $row));

你没有。首先创建数组,将其分配给变量,然后在构造函数中使用该变量。
<?php

 class Foo{}
 $className='Foo';
 $array = ['name','number','anything'];
 $row = ['name_v', 'number_v', 'anything_v'];
 $foo = new $className();

 foreach(array_combine($array, $row) as $k => $v){
   $foo->$k = $v;
 }

 print(json_encode($foo));