【发布时间】:2013-03-31 03:29:22
【问题描述】:
我正在尝试在 PHP 中练习/学习 foreach 循环。我了解基本的foreach。但我在多维方面挣扎。
我有一个数组来测试它:
$data = array(
array('New York', 'New York City'),
array('hotel', 'lodging','motel'),
array('cheap')
);
我想要做的是循环遍历每个可能的组合并将其分配给它自己的数组(稍后将显示为列)。
First column ('New York', 'New York City')
second column ('New York hotel', 'New York lodging', 'New York motel')
third column ('New York City hotel', 'New York City lodging', 'New York City motel')
fourth column ('New York hotel cheap', 'New York lodging cheap', 'New York motel cheap')
fifth column ('New York City hotel cheap', 'New York City lodging cheap', 'New York City motel cheap')
我将如何做到这一点?我已经尝试了几件事,但还没有接近。
更新 我的最终目标是让个人能够获取项目列表,并尝试找到所有可能的关键字。然后,这将有助于识别他们可以考虑使用的不同 SEO 关键字。 所以有时 Data 数组可能有 2 个子数组,有时它可能有 3 或 4 个。所以它需要有点动态。
第一次解决方案尝试
public function recurseful($start, $args)
{
if (is_array($args))
{
foreach ($args[0] as $value)
{
$this->output[] = trim("{$start} {$value}");
if (count($args) > 1)
{
$this->recurseful($value, array_slice($args, 1));
}
}
}
return;
}
但是,这会将我的所有单词返回到一个数组中。这不符合我正在寻找的要求。
【问题讨论】:
-
如果您详细说明您的输入和预期输出,我们可能更容易建立模式。
-
我已经更新了。这是否有助于让我更清楚我想要完成什么?
-
不太好 - 尝试用你的“SEO”字样展示一个实际的测试用例,在 $data 中使用 3 个数组,然后是所需的输出 - 否则不清楚它们之间的关系是什么。跨度>
-
我已根据您的要求进行了更新。
标签: php arrays codeigniter multidimensional-array foreach