【问题标题】:Optimal way to convert stdClass Object array to string将 stdClass 对象数组转换为字符串的最佳方法
【发布时间】:2014-03-01 21:03:42
【问题描述】:

将 stdClass 对象数组转换为字符串的最佳方法

我的 stdClass 对象格式是:

$autoArea = Array (
    [0] => stdClass Object ( [area] => aarea )
    [1] => stdClass Object ( [area] => area )
    [2] => stdClass Object ( [area] => barea ) 
    [3] => stdClass Object ( [area] => carea )
)

我需要输出为字符串:

'aarea', 'area', 'barea', 'carea'

我尝试了以下 2:

$areas="";
foreach($autoArea as $ar)
{
    if($areas=="")
    {
        $areas="'".$ar->area."'";
    }
    else
    {
        $areas=$areas.","."'".$ar->area."'";
    }
}
echo $areas; 

$tp= array();
foreach($autoArea as $ar)
{
    $tp[] = $ar->area;
}

$areas=implode("','", $tp); 
$areas="'".$areas."'";
echo $areas; 

哪个更好,或者有其他建议我。

【问题讨论】:

  • @Suresh Kamrushi:我需要哪种方法不是将数组转换为字符串的最佳方法,而是根据性能和执行时间等的最佳方法...

标签: php foreach implode stdclass


【解决方案1】:

使用array_map函数

echo implode(', ', array_map(function($item) {return $item->area;}, $autoArea));

希望对你有帮助

【讨论】:

    【解决方案2】:

    只需提取所需的属性,例如:

    $data = [
       (object)['area' => 'foo'],
       (object)['area' => 'bar'],
       (object)['area' => 'baz']
    ];
    $result = join(',', array_map(function($x)
    {
       return $x->area;
    }, $data));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2021-08-03
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多