1

我需要使用Inflector::slug()从我的数据库中获取的所有结果,这些结果当然是在一个数组中检索的。是否有可能,或者我需要循环每个结果并对其进行处理?

谢谢!

4

2 回答 2

2

PHP 的array_map()函数可能会满足您的需求(尽管它假定一个简单的索引数组)。

array_map( 'Inflector::slug', $your_result )

如果您正在查看更复杂的内容,CakePHP 的Set实用程序类可能有助于多步骤实现。

我没有在 CakePHP 上下文中尝试过这个(即通过 CakePHP 类方法映射),但我想不出任何原因它不会在我的脑海中起作用。也许它至少会让你开始。

于 2011-06-29T22:28:41.240 回答
0

根据您可以使用的阵列array_walkarray_walk_recursive.

像这样的东西应该工作。

这是5.3+;

array_walk_recursive($posts, function(&$value) {
    $value = Inflector::slug($value);
});

如果您想将其限制在某个领域,您还可以执行以下操作:

array_walk_recursive($posts, function(&$value, $key) {
if ($key == 'title') {
    $value = Inflector::slug($value);
  }
});

我有一段时间没有使用 Cake,但就像 Rob Wilkerson 所说的,你可能会发现这个Set类可以让这个工作变得更轻松。

于 2011-06-29T23:23:10.850 回答