Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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将多个对象转换为一个数组_Php_Arrays_Object - Fatal编程技术网

PHP将多个对象转换为一个数组

PHP将多个对象转换为一个数组,php,arrays,object,Php,Arrays,Object,在尝试转换多个对象并将它们放入一个数组时,我不幸地在数组结果中得到了一个数组 我要变换的对象: array(2) { [0]=> object(stdClass)#104 (1) { ["name"]=> string(4) "Paul" } [1]=> object(stdClass)#105 (1) { ["name"]=> string(5) "Jenna" } } for ($i=0; $i < co

在尝试转换多个对象并将它们放入一个数组时,我不幸地在数组结果中得到了一个数组

我要变换的对象:

array(2) {
  [0]=>
  object(stdClass)#104 (1) {
    ["name"]=>
    string(4) "Paul"
  }
  [1]=>
  object(stdClass)#105 (1) {
    ["name"]=>
    string(5) "Jenna"
  }
}
for ($i=0; $i < count($readers) ; $i++) {
    $json = json_encode($readers[$i]);    // 1          

    $data = json_decode($json, TRUE);     // 2    

    $arr = array();
    array_push($arr, $data);              // 3
}
// 1
{"name":"Paul"}{"name":"Jenna"}
我的PHP:

array(2) {
  [0]=>
  object(stdClass)#104 (1) {
    ["name"]=>
    string(4) "Paul"
  }
  [1]=>
  object(stdClass)#105 (1) {
    ["name"]=>
    string(5) "Jenna"
  }
}
for ($i=0; $i < count($readers) ; $i++) {
    $json = json_encode($readers[$i]);    // 1          

    $data = json_decode($json, TRUE);     // 2    

    $arr = array();
    array_push($arr, $data);              // 3
}
// 1
{"name":"Paul"}{"name":"Jenna"}
-

-

期望的结果

我希望将所有内容合并到一个数组中。键是索引,值是名称

Array
(
    [0] => Paul
    [1] => Jenna
)
Array
(
    [0] => Paul
    [1] => Jenna
)

循环遍历对象数组(
$arr
),并使用
$val->string
值编译最终数组(
$finArr
)。试试这个:

$finArr = array();
foreach ($arr as $key => $val) {
  $finArr[] = $val->string;
}

循环遍历对象数组(
$arr
),并使用
$val->string
值编译最终数组(
$finArr
)。试试这个:

$finArr = array();
foreach ($arr as $key => $val) {
  $finArr[] = $val->string;
}

您还必须从数组中提取密钥。并在foreach外部声明
$arr=array()

$arr = array();
for ($i=0; $i < count($readers) ; $i++) {
    $data = $readers[$i]->name;          //change this line 
    array_push($arr, $data);              // 3
}

print_r($arr);

您还必须从数组中提取密钥。并在foreach外部声明
$arr=array()

$arr = array();
for ($i=0; $i < count($readers) ; $i++) {
    $data = $readers[$i]->name;          //change this line 
    array_push($arr, $data);              // 3
}

print_r($arr);

您可以简单地遍历读卡器数组,取出每个读卡器的名称,并根据需要将每个读卡器的名称添加到数字索引数组中

$names = array(); // Initialize.

foreach($readers as $reader) {
    if (!empty($reader->name)) {
        $names[] = $reader->name;
    }
}



您可以简单地遍历读卡器数组,取出每个读卡器的名称,并根据需要将每个读卡器的名称添加到数字索引数组中

$names = array(); // Initialize.

foreach($readers as $reader) {
    if (!empty($reader->name)) {
        $names[] = $reader->name;
    }
}