Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/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-将数组转换为新数组_Php_Arrays_Multidimensional Array - Fatal编程技术网

PHP-将数组转换为新数组

PHP-将数组转换为新数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,当前阵列: stdClass Object ( [name1] => Someting very useful [text1] => Description of something useful [url1] => link.to/useful [name2] => Someting very useful2 [text2] => Description of something useful2 [url2] => link.to/useful2 [name

当前阵列:

stdClass Object (
[name1] => Someting very useful
[text1] => Description of something useful
[url1] => link.to/useful
[name2] => Someting very useful2
[text2] => Description of something useful2
[url2] => link.to/useful2
[name3] => Someting very useful3
[text3] => Description of something useful3
[url3] => link.to/useful3
) 
我需要: 创建多维数组,其中像name1、text1、url1(等等)这样的键将放入自己的数组中。如何做到这一点

$array = (array) $object;
嗯,

我想你想要:

$array = array_chunk((array)$object, $chunkSize = 3, $preserveKeys = true);
$object
是上面的对象)

这会将您的对象强制转换为一个数组,并将其拆分为更小的数组,每个数组包含3个元素

我想您需要:

$array = array_chunk((array)$object, $chunkSize = 3, $preserveKeys = true);
$object
是上面的对象)


这会将对象强制转换为一个数组,并将其拆分为更小的数组,每个数组包含3个元素

,这将是非常通用的,即使您没有一致的输入,例如每个孩子正好有三个属性。此外,对象中的属性不必按任何特定顺序排列

//$obj is the object you have in the question
$objects = array();
foreach($obj as $key => $val) {
    $result = preg_match('%([a-zA-Z]+)([0-9]+)%', $key,$matches);
    $new_key = $matches[2];
    $property = $matches[1];
    if(!isset($objects[$new_key])) {
        $objects[$new_key] = array();
    }
    $objects[$new_key][$property] = $val;
}

即使您没有一致的输入,比如每个孩子正好有三个属性,这也是非常通用的。此外,对象中的属性不必按任何特定顺序排列

//$obj is the object you have in the question
$objects = array();
foreach($obj as $key => $val) {
    $result = preg_match('%([a-zA-Z]+)([0-9]+)%', $key,$matches);
    $new_key = $matches[2];
    $property = $matches[1];
    if(!isset($objects[$new_key])) {
        $objects[$new_key] = array();
    }
    $objects[$new_key][$property] = $val;
}
$array=array();
$c=计数($object)/3;
(数组)$对象;
对于($i=1;$i
$array=array();
$c=计数($object)/3;
(数组)$对象;

对于($i=1;$i您有一个stdClass的对象实例。它不是数组。您有一个stdClass的对象实例。它不是数组。请您对您的答案提供一些解释。请您对您的答案提供一些解释。这并不是OP所要求的。我相信他们希望将其分解为基于数组的多维数组属性末尾的数字。所以所有的1一起,所有的2一起,等等…这不是OP想要的。我相信他们希望根据属性末尾的数字将其分解为多维数组。所以所有的1一起,所有的2一起,等等…只要属性在有序且一致。只要属性有序且一致,这就是好答案。