【发布时间】:2023-03-20 02:30:02
【问题描述】:
我需要对从我的数据库中提取的所有结果使用Inflector::slug(),当然,这些结果是在数组中检索的。是否有可能,或者我需要循环每个结果并对其进行处理?
谢谢!
【问题讨论】:
我需要对从我的数据库中提取的所有结果使用Inflector::slug(),当然,这些结果是在数组中检索的。是否有可能,或者我需要循环每个结果并对其进行处理?
谢谢!
【问题讨论】:
PHP 的 array_map() 函数可能会满足您的需求(尽管它假定一个简单的索引数组)。
array_map( 'Inflector::slug', $your_result )
如果您正在寻找更复杂的东西,CakePHP 的 Set 实用程序类可能有助于多步骤实现。
我还没有在 CakePHP 上下文中尝试过这个(即通过 CakePHP 类方法进行映射),但我想不出任何原因它不会在我的脑海中发挥作用。也许它至少能让你开始。
【讨论】:
array_map('Inflector::slug', array_keys($your_array)) 之类的东西?
根据阵列,您可以使用array_walk 或array_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 类可以让这件事变得更轻松。
【讨论】: