php中的pop数组
我需要这个输出php中的pop数组,php,arrays,Php,Arrays,我需要这个输出 Array ( [id:>] => 0 [isonline] => 0 [userclass_id] => 3 ) 我用这个代码得到这个输出: $pr = array('id:>'=>$id,'isonline'=>'0','userclass_id'=>'3'); print_r($params); $params = array(); array_push($params,array('userclass_
Array
(
[id:>] => 0
[isonline] => 0
[userclass_id] => 3
)
我用这个代码得到这个输出:
$pr = array('id:>'=>$id,'isonline'=>'0','userclass_id'=>'3');
print_r($params);
$params = array();
array_push($params,array('userclass_id'=>'3')); // Members
array_push($params,array('isonline'=>'0')); // Online
array_push($params,array('id:>'=>$id));
这很好。但我想一个接一个地排列新元素。
当我使用此代码时:
$pr = array('id:>'=>$id,'isonline'=>'0','userclass_id'=>'3');
print_r($params);
$params = array();
array_push($params,array('userclass_id'=>'3')); // Members
array_push($params,array('isonline'=>'0')); // Online
array_push($params,array('id:>'=>$id));
我得到以下输出:
Array
(
[0] => Array
(
[userclass_id] => 3
)
[1] => Array
(
[isonline] => 0
)
[2] => Array
(
[id:>] => 0
)
)
我希望动态添加新元素,但也希望有第一个输出。感谢您的帮助。您正在使用array\u push,它将元素添加到数组的末尾。您应该使用array_unshift,它将在数组的开头添加新项
$element = array();
$element['userclass_id'] = 3;
$element['isoline'] = 0;
$element['id:>'] = $id;
$params[] = $element
$params = array();
$params['userclass_id'] = 3;
$params['isoline'] = 0;
$params['id:>'] = $id;
当以编程方式依赖php中的数组顺序时。。。array_pop、array_push、array_shift和array_unshift是您的朋友。认识他们。。。爱他们
关联数组中键值的顺序无关紧要。因此,您不需要
array\u push
或array\u unshift
。您只需将一个键与所需的值关联(反之亦然)。因此,您可以编写以下代码来向$params
数组动态添加值
$key = "my_id:2";
$value = "23";
$params[$key] = $value;
是的,没有移动或推。。。只需将
$key
添加到方括号和您的all good之间 erenon的答案可能更好,但如果您真的想一次添加一个元素的子数组:
$params = array();
array_unshift($params,array('userclass_id'=>'3')); // Members
$params[0]['isonline'] = 0; // Online
$params[0]['id:>'] = $id;
这是因为array_unshift将元素放在数组的开头,因此新的子数组将始终为元素0
出于性能原因,您可能希望改为执行此操作,以使元素不会不断重新编号:
$params = array();
$params[] = array('userclass_id'=>'3'); // Members
end($params); // Move to the new element
$key = key($params); // Get the key of the new element
$params[$key]['isonline'] = 0; // Online
$params[$key]['id:>'] = $id;
就这样怎么样
$aParams[] = array(
'userclass_id' => 3,
'isoline' => 0,
'id:>' => $id
);
我非常喜欢以这种方式分配数组项中的所有值,而不是单独分配语句。发生的事情是,您将新数组推到当前数组上,而不是将新数组合并到旧数组中。 $params=array() 或者更好的是,您只需调用array_merge一次,并将所有值传递给它
$params = array_merge($params, array('userclass_id' => 3), array('isonline' => '0'), array('id:>' => $id));
获得所需输出的另一种方法是直接在数组上分配键
$params = array();
$params['userclass_id'] = 3;
$params['isoline'] = 0;
$params['id:>'] = $id;
也许最好的方法就是在创建数组时分配键
$params = array(
'userclass_id' => 3,
'isoline' => 0,
'id:>' => $id
);
我不建议命名为“id:>”,但我不知道要添加的键和值。如果您想提高性能,那么:$params[]=$element比array_push()快,“但我不知道要添加的键和值。”您是否尝试过
$element[$key]=$value
?“但我不知道要添加的键和值。”您可以使用count($array)对数组中的元素进行计数,然后向其中添加1。所以$array[(count($array)+1)]['userclass_id']=3;如此类推。@Sbm007:“$array[(count($array)+1)]['userclass_id']=3”永远不要这样做。使用[]运算符。