我陷入了数组操作任务。
场景:
我有一个对象数组。样本:
Array(
[0] => stdClass Object(
['foo'] => 'foo1',
['bar'] => 'bar1',
['baz'] => 'baz1'
),
[1] => stdClass Object(
['foo'] => 'foo2',
['bar'] => 'bar2',
['baz'] => 'baz2'
),
[2] => stdClass Object(
['foo'] => 'foo3',
['bar'] => 'bar3',
['baz'] => 'baz3'
)
)
我必须将其转换为这种形式:
Array(
['foo1'] => Array('bar1', 'baz1'),
['foo2'] => Array('bar2', 'baz2'),
['foo3'] => Array('bar3', 'baz3'),
)
这是我为实现此目的而创建的功能:
function createAttributeString($attributes)
{
$finalString = '';
$string = array();
$column = array();
foreach( $attributes as $attrib )
{
if( $attrib->primary_key == '1' )
$column[$attrib->name] = array("'$attrib->type'", "'$attrib->max_length'", '\'pk\'');
else
$column[$attrib->name] = array("'$attrib->type'", "'$attrib->max_length'");
$string[$attrib->name] = 'array('.implode(',', $column[$attrib->name]).')';
}
$finalString = 'array('.implode(',', $string).')';
return $finalString;
}
但是这个函数的输出是:
Array(
[0] => Array('bar1', 'baz1'),
[1] => Array('bar2', 'baz2')
[2] => Array('bar3', 'baz3')
)
我知道这是因为我在 $finalString 中使用的最后一个内爆函数,但我不明白应该使用什么来获得我想要的输出。
任何帮助或建议将不胜感激。
更新:
最终数组应以字符串格式返回。