从cakephp中的数组中删除数组键

时间:2014-03-21 12:50:12

标签: arrays cakephp

打印数组

array(
    'Order' => array(
        'id' => '1',
        'base_price' => '65',
        'min_price' => '95',            
    )
)

检索数据时是否可以删除密钥('订单')?如果不是如何使用array_shift或在一行中结束并防止出现以下错误?

当我从数组中删除密钥时,我收到此错误Only variables should be passed by reference

$orders = array_shift or end ($this->Order->read(null, $id));
debug($orders);

2 个答案:

答案 0 :(得分:2)

您只需要来自它的ID,然后以下代码将帮助您

 $arrOrderId=Set::extract("/Order/id",$data);

此处$ data是您要从中删除此“订单”键的数组。

执行debug($arrOrderId);

时,您将获得以下数组
[0]=>1

如果你想要base_price,那么写下面的代码

$arrOrderId=Set::extract("/Order/base_price",$data);

答案 1 :(得分:2)

您可以使用Set函数来操作数组:

Set::extract($array, 'Order');

将输出:

array(
    'id' => '1',
    'base_price' => '65',
    'min_price' => '95',            
)

如果您需要在每个输出上执行此操作,则可以覆盖模型上的afterFind()方法。

请参阅文档:

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::extract

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::classicExtract