Удалить ключ массива из массива в CakePHP
Массив печати
array(
'Order' => array(
'id' => '1',
'base_price' => '65',
'min_price' => '95',
)
)
Можно ли удалить ключ ("Порядок") при получении данных? Если нет, то как я могу использовать array_shift или end в одной строке и предотвратить ошибку ниже?
Я получаю эту ошибку Only variables should be passed by reference
когда я удаляю ключ из массива.
$orders = array_shift or end ($this->Order->read(null, $id));
debug($orders);
2 ответа
Вы хотите только идентификатор от этого, тогда следующий код поможет вам
$arrOrderId=Set::extract("/Order/id",$data);
здесь $data - это ваш массив, из которого вы хотите удалить этот ключ "Order".
Вы получите следующий массив, когда вы делаете debug($arrOrderId);
[0]=>1
если вы хотите base_price, напишите следующий код
$arrOrderId=Set::extract("/Order/base_price",$data);
Ты можешь использовать 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
http://book.cakephp.org/2.0/en/core-utility-libraries/set.html