Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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 - Fatal编程技术网

Php 如何将所有索引数组对象合并到一个关联数组对象中

Php 如何将所有索引数组对象合并到一个关联数组对象中,php,Php,我有一个php数组对象$images如果我通过print\r($images)打印这个数组,我会得到以下结构 Array ( [0] => stdClass Object ( [image_name] => 1.jpg ) [1] => stdClass Object ( [image_name] => 2.jpg ) [2] =&g

我有一个php数组对象
$images
如果我通过
print\r($images)
打印这个数组,我会得到以下结构

Array
(
    [0] => stdClass Object
        (
            [image_name] => 1.jpg
        )

    [1] => stdClass Object
        (
            [image_name] => 2.jpg
        )

    [2] => stdClass Object
        (
            [image_name] => 3.jpg
        )
)
我想把它的结构转换成:

Array
(
    [image_name] => stdClass Object
        (
            [0] => 1.jpg
            [1] => 2.jpg
            [2] => 3.jpg
        )
)

有人请给我推荐一个用php实现的函数。

你可以做一个简单的循环

$imagesArray = ['image_name' => new \stdClass()];
$counter = 0;
foreach ($images as $image) {
    $imagesArray['image_name']->$counter = $image->image_name;
    $counter++;
}
解释


我首先用stdClass的一个元素创建了一个数组
$imagesArray
,然后我将
image\u name
作为键。然后,通过使用图像数组的foreach循环
$images
,每个
$images
都是stdClass对象,您只需获得
images\u name
属性并将其分配给
images\u name
对象作为
$counter
,它只是一个整数。

您可以执行一个简单的循环

$imagesArray = ['image_name' => new \stdClass()];
$counter = 0;
foreach ($images as $image) {
    $imagesArray['image_name']->$counter = $image->image_name;
    $counter++;
}
解释



我首先用stdClass的一个元素创建了一个数组
$imagesArray
,然后我将
image\u name
作为键。然后通过使用图像数组的foreach循环
$images
,每个
$images
都是stdClass对象,您只需获得
images\u name
属性,并将其分配给
images\u name
对象作为
$counter
,这只是一个整数。

它是否总是具有相同的格式?是的,我将只获取指定的格式。为什么它要输出一个包含对象的数组?你确定它不应该只是一个数组吗?我使用了
print_r()
来输出它。我想@SverriM.Olsen会问你希望输出为
stdClass Object
通常使用数组,只是为了澄清它是否是一个错误。它是否总是具有相同的格式?是的,我将只获取指定的格式。为什么它要输出一个包含对象的数组?您确定它不应该只是一个数组吗?我使用了
print\r()
来输出它。我想@SverriM.Olsen会问您希望输出为
stdClass对象,因为通常使用数组,只是为了澄清它是否是一个错误。
$imagesArray
将不是一个数组object@VasilShaddix是的,它起作用了。你做了什么?我是说你能解释一下吗。太好了!一个技巧:
$imagesArray['image\u name']->{$counter++}=$image->image\u name而不是两行:)@VasilShaddix,现在这是一个很好的答案,一些注释/解释会让它变得很好。你用stdClass的一个元素创建一个数组,我将“image\u name”作为键。然后使用foreach在图像数组中循环。每个$image都是stdClass对象,您只需获取image\u name属性并将其作为$counter分配给image\u name对象,它只是一个整数。我不会使用@bansi建议的这种结构。希望您能理解。
$imagesArray
将是一个数组,而不是object@VasilShaddix是的,它起作用了。你做了什么?我是说你能解释一下吗。太好了!一个技巧:
$imagesArray['image\u name']->{$counter++}=$image->image\u name而不是两行:)@VasilShaddix,现在这是一个很好的答案,一些注释/解释会让它变得很好。你用stdClass的一个元素创建一个数组,我将“image\u name”作为键。然后使用foreach在图像数组中循环。每个$image都是stdClass对象,您只需获取image\u name属性并将其作为$counter分配给image\u name对象,它只是一个整数。我不会使用@bansi建议的这种结构。希望你能理解。