删除数组中不必要的嵌套索引(由 Cake PHP 生成)
下面的问题可以通过改变我在 Cake PHP 中使用 find
方法或使用一些 PHP 函数来解决。我更愿意使用 Cake 来解决它,但这并不重要。我有这样的数组:
Array
(
[0] => Array
(
[Model] => Array
(
[id] => 14
[foo] => bar
)
)
[1] => Array
(
[Model] => Array
(
[id] => 15
[foo] => something
)
) .............
我只想删除 Model
索引并仅使用数字索引。以下函数生成了此数组:
$arr = $this->Model->find('all', array('contain' => false ) );
我可能需要更改调用的 'contain'
部分。基本上,除了每个 Model
索引下出现的数据之外,我还有第二个和第三个模型,并且 contain = false
只是限制 Cake 从当前模型获取数据模型(模型
)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果我正确理解你的问题,我认为 CakePHP 的 Set::combine 函数会有所帮助 http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::combine :
这将导致:
If I understand your question correctly, I think CakePHP's Set::combine function will help http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::combine :
This will result in:
您必须编写自己的代码来修改您的数组,这里有一个函数可以执行您想要的操作(您可以改进它)
您必须将数组和模型名称传递给此函数并将返回结果
you have to write your own piece of code to modify your array , here is a function that will do what you want (you can improve it)
you have to pass your array and the Model Name to this function and will return you the result
运行此命令以删除模型名称用户
将返回此命令
RUN THIS TO REMOVE THE MODEL NAME USER
WILL RETURN THIS
在 CakePHP 2 中:
您也可以通过 foreach 实现此结果
In CakePHP 2:
You can achieve this result by foreach also
使用
Object
会容易得多。将Array
更改为Object
。实际上,我在
嵌套数组
方面也遇到了同样的问题,并且我找到了Set::map($array);如果您不希望
model_name
作为嵌套数组
,您可以更喜欢这个解决方案。It will be much easier with
Object
. Change theArray
withObject
.Actually I had faced the same problem with
nested array
And I found the solution with Set::map($array);If you don't want the
model_name
asnested array
, You can prefer this solution.你可以这样做:
you may do this :