如果我有一个像下面这样的stdClass对象,它有三个非数字键的数组,在我的帐户和设置之间插入另一个项目的最好方法是什么?
[menu1] => stdClass Object
(
[my-account] => Array
(
[title] => 'My Account'
)
[settings] => Array
(
[title] => 'Settings'
)
[payments] => Array
(
[title] => 'Payments'
)
)
为此创建您自己的类,其中包含添加和删除项及其属性的函数。然后使用提供的一些函数,如@genesis。
没有这样的函数。你必须自己动手重建你的对象
http://sandbox.phpcode.eu/g/fba96/3<?php
function insert_after($var, $key, $value, $after){
$new_object = array();
foreach((array) $var as $k => $v){
$new_object[$k] = $v;
if ($after == $k){
$new_object[$key] = $value;
}
}
$new_object = (object) $new_object;
return $new_object;
}
$var = insert_after($var, 'new dummy var between', array('title' => 'value'), 'my-account');
添加条目,然后删除并重新添加后面需要的条目:
$menu1->newitem = array('title'=>'Title');
$settings = $menu1->settings;
unset($menu1->settings);
$menu1->settings = $settings;
unset($settings);
unset($menu1->payments);
$menu1->payments = $payments;
unset($payments);