2012-12-20 192 views
2

可能重复:
Converting array and objects in array to pure array转换对象到阵列

我的时刻的阵列,但它被传递给被其转换为对象,它到另一个功能尽管它需要成为一个标准阵列。我需要下面的对象数组转换成一个标准的数组:

[files] => stdClass Object 
     (
      [1] => stdClass Object 
       (
        [name] => price-my-insurance.jpg 
        [type] => image/jpeg 
        [tmp_name] => /Applications/MAMP/tmp/php/phpfmRfyN 
        [error] => 0 
        [size] => 911376 
       ) 

      [2] => stdClass Object 
       (
        [name] => sideshows.jpg 
        [type] => image/jpeg 
        [tmp_name] => /Applications/MAMP/tmp/php/phpTamdHy 
        [error] => 0 
        [size] => 967656 
       ) 

      [3] => stdClass Object 
       (
        [name] => the-beer-scale.jpg 
        [type] => image/jpeg 
        [tmp_name] => /Applications/MAMP/tmp/php/phpwCmwlW 
        [error] => 0 
        [size] => 742219 
       ) 

      [4] => stdClass Object 
       (
        [name] => the-little-lace.jpg 
        [type] => image/jpeg 
        [tmp_name] => /Applications/MAMP/tmp/php/phpFnUuf8 
        [error] => 0 
        [size] => 939963 
       ) 

      [5] => stdClass Object 
       (
        [name] => varrstoen-australia.jpg 
        [type] => image/jpeg 
        [tmp_name] => /Applications/MAMP/tmp/php/phpUtWyk1 
        [error] => 0 
        [size] => 2204400 
       ) 

     ) 

这样:

Array 
(
    [1] => Array 
     (
      [name] => price-my-insurance.jpg 
      [type] => image/jpeg 
      [tmp_name] => /Applications/MAMP/tmp/php/phpfmRfyN 
      [error] => 0 
      [size] => 911376 
     ) 

    [2] => Array 
     (
      [name] => sideshows.jpg 
      [type] => image/jpeg 
      [tmp_name] => /Applications/MAMP/tmp/php/phpTamdHy 
      [error] => 0 
      [size] => 967656 
     ) 

    [3] => Array 
     (
      [name] => the-beer-scale.jpg 
      [type] => image/jpeg 
      [tmp_name] => /Applications/MAMP/tmp/php/phpwCmwlW 
      [error] => 0 
      [size] => 742219 
     ) 

    [4] => Array 
     (
      [name] => the-little-lace.jpg 
      [type] => image/jpeg 
      [tmp_name] => /Applications/MAMP/tmp/php/phpFnUuf8 
      [error] => 0 
      [size] => 939963 
     ) 

    [5] => Array 
     (
      [name] => varrstoen-australia.jpg 
      [type] => image/jpeg 
      [tmp_name] => /Applications/MAMP/tmp/php/phpUtWyk1 
      [error] => 0 
      [size] => 2204400 
     ) 

) 

我卡在foreach循环来做到这一点。

编辑:

Here is a screenshot of the output

+0

从[这个答案]开始(http://stackoverflow.com/questions/10631767/converting-array-and-objects-in-array-to-pure-array)将数组的结果对象转换为数组'(array)$ object' –

回答

3

我会做的懒办法:

$jsonstring = json_encode($theObj); 
$array = json_decode($jsonstring,true); 

Php Doc

assoc命令
当TRUE时,返回的对象将被转换为关联数组。

编辑:我只是测试这一点:

<?php 
$o = new stdClass(); 
$o->property = "somepath"; 

$a = array($o,$o); 
$js = json_encode($a); 
$array = json_decode($js,true); 
var_dump($array); 
?> 

这里是输出:

array(2) { 
    [0]=> 
    array(1) { 
    ["property"]=> 
    string(8) "somepath" 
    } 
    [1]=> 
    array(1) { 
    ["property"]=> 
    string(8) "somepath" 
    } 
} 
+0

+1,我喜欢懒惰的东西:-) –

+0

我无法让它工作,或者它没有做任何事情...... $ files = $ this-> post('userfile “); $ jsonstring = json_encode($ files); $ array = json_decode($ jsonstring,true); –

+0

上面列出的第一个数组是使用json方法重新生成的 $ array = json_decode($ jsonstring,true); –

0
$array = array(); 

foreach ($files as $k => $v) { 
    if (!is_array($array[$k])) { 
     $array[$k] = array(); 
    } 

    foreach ($v as $j => $u) { 
     $array[$k][$j] = $u; 
    } 
} 

不完全相信它会工作。 @Ibu说,或许更容易做懒惰的方式。

+0

我想你会遇到一些麻烦,因为会影响数组的类型转换,但不会影响对象属性。看看这个[codepad](http://codepad.org/HrlzBV69)。 –

+0

非常真实,但我只是想如何将上述对象更改为上述数组。 – qooplmao

+0

:)当然,这并不会让你的回答更加恶化。 –