如何在php中将stdobj数组转换为关联数组

Posted

技术标签:

【中文标题】如何在php中将stdobj数组转换为关联数组【英文标题】:how to convert stdobj array to associative array in php 【发布时间】:2018-04-22 05:20:48 【问题描述】:

我在数组中有这个 stdclass 对象

Array ( [0] => stdClass Object ( [file_id] => 6 [file_name] => 1ofdays.wav ) [1] => stdClass Object ( [file_id] => 7 [file_name] => abcd.mp3 ) ) 

我想把这个stdclass对象数组转换成关联数组比如

$name_array=([text]=>1ofdays.wav,[text]=>abcd.mp3);
$id_array=([value]=>6,[value]=>7); 

我尝试通过首先使用此函数展平数组来实现它

public function array_flatten($mArray) 
    $sArray = array();

    foreach ($mArray as $row) 
        if ( !(is_array($row)) ) 
            if($sArray[] = $row)
            
         else 
            $sArray = array_merge($sArray,$this->array_flatten($row));
        
    
    return $sArray;

      

这个函数给了我结果

Array ( [0] => 6 [1] => 1ofdays.wav [2] => 7 [3] => abcd.mp3 ) 

然后我创建了两个数组even()odd()

并从 的奇数和偶数索引中获取元素并将它们推送到他们尊重的数组中

导致

even( [0] => 6 [1] => 7 )
odd( [0] => 1ofdays.wav [1] => abcd.mp3 )  

现在我想将偶数数组的元素放入

Id_array =('value'=>6,'value'=>7)

name_array=('text'=>1ofdays.wav,'text'=>'abcd.mp3')

【问题讨论】:

能否请您强调一下您帖子的哪一部分是实际问题? @rudolf_franek 我想把这个stdclass对象数组转换成关联数组比如 你检查过这个链接了吗?***.com/questions/15191903/… 【参考方案1】:

希望如你所愿

<?php

class stdClass1 

    public $file_id;
    public $file_name;

    public function setName($n, $sn) 
        $this->file_id = $n;
        $this->file_name = $sn;
    



$exaObj = new stdClass1;
$exaObj2 = new stdClass1;
$exaObj->setName('6', '1ofdays.wav');
$exaObj2->setName('7', 'abcd.mp3');
$arr = array($exaObj, $exaObj2);

foreach ($arr as $k => $v) 
    print_r($v);
    echo "<br>";
    foreach ($v as $key => $value) 
        $$key[] = $value;
    


echo "<pre>";
print_r($file_id);
echo "</pre>";

echo "<pre>";
print_r($file_name);
echo "</pre>";

echo "Second METHOD<br><br>";

foreach ($arr as $k => $v) 
    $nameArr[] = $v->file_name;
    $idArr[] = $v->file_id;


echo "<pre>";
print_r($idArr);
echo "</pre>";

echo "<pre>";
print_r($nameArr);
echo "</pre>";
?>

【讨论】:

以上是关于如何在php中将stdobj数组转换为关联数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在PHP中将对象转换为特定格式的数组

在 PHP 中将多维关联数组展平为一维引用数组

在Jquery中将表单转换为关联数组[重复]

如何在PHP中按字符将数组拆分为关联数组[重复]

当字符串包含 PHP 中的重复键时,如何将字符串转换为关联数组? [复制]

将 PHP 对象转换为关联数组