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一起,等等…只要属性在有序且一致。只要属性有序且一致,这就是好答案。