キーワード生成ツールを作成する個人的なプロジェクトに取り組んでいます。多次元配列をループして、提供されたキーワードのリストで可能なすべての組み合わせを見つける再帰関数をセットアップしました。
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;
}
私は通過しています:
$data = array(
array('New York', 'New York City'),
array('hotel', 'lodging','motel'),
);
$results = recurseful('', $data);
正常に繰り返され、さまざまなキーワードの組み合わせのリストが表示されます。ただし、それらはすべて$outputの単一の配列で返されます。この関数は、$Data[0] (または $args[0]) から値を取得し、指定された他のキーワードと一致させるように設計されています。
むしろ彼らが戻ってきてほしい
1st ('New York', 'New York City')
2nd ('New York hotel', 'New York lodging', 'New York motel')
3rd ('New York City hotel', 'New York City lodging', 'New York City motel')
現在、これらの一致をすべて 1 つに返します。それらを別のアレイに移動させるにはどうすればよいですか? 最初は と完全に一致するため、簡単に取得できますが、の1$data[0]
つの値に対して可能なすべての組み合わせをループした後、新しい配列を強制するにはどうすればよいでしょう$data[0]
か? (したがって、 に 3 つの値がある場合は$data[0]
、さらに 3 つの配列が返されます)。
スクリーンショット
ユーザーは、必要な単語の選択肢をスプレッドシートに入力します。
これと同様の結果が返されます。したがって、データの各列を独自の配列に入れたいと思います。
上記の現在のソリューションは、すべてを独自の配列に入れるだけなので、同じ列に返されます。