код:
$a=array("apple","bird","cat","dog"); $b=array("bird","cat","dog","flog"); $res = array(); foreach($a as $v1) { foreach($b as $v2) { $t = array($v1, $v2); asort($t); $val = implode('', $t); if(!in_array($val, $res)) print $val; print "/"; } }
код переписывается с помощью @pala_ form this article Как использовать php для подсчета массива слов (строки) в MySQL
и вот результат
applebird/applecat/appledog/appleflog/birdbird/birdcat/birddog/birdflog/birdcat/catcat/catdog/catflog/birddog/catdog/dogdog/dogflog/
ok, и мой вопрос в том, хочу ли я разбить эту комбинационную строку на две строки
например: applebird —-> яблочная птица и вставка в таблицу MySQL
как:
источник | цель
яблоко | птица
яблоко | Кот
яблоко | собака
…….. что-то вроде этого, любая идея? Благодарю.
Удалите implode, вместо этого сохраните их как многомерный массив:
$a=array("apple","bird","cat","dog"); $b=array("bird","cat","dog","flog"); $res = array(); foreach($a as $v1) { foreach($b as $v2) { $t = array($v1, $v2); asort($t); if(!in_array($t, $res)) { print $res[] = $t; // alternatively, instead of building them into an array for further processing // you could immediately execute your sql query here, using $t[0], $t[1] as // the values (thanks to comments). If you are using prepared statements // (which you should be), if you prepare the statement outside of the loops // you can simply execute it here, passing $t[0] and $t[1] as the bound parameters } } } foreach($res as $pair) { ... // build your query using whatever mysql interface you are using // $pair[0] will be one word, $pair[1] will be the other }
Я немного изменил код, который вам может понадобиться:
<?php $a=array("apple","bird","cat","dog"); $b=array("bird","cat","dog","flog"); $res=array(); $finalString=""; foreach($a as $v1) { foreach($b as $v2) { $t=array($v1,$v2); asort($t); $val=implode('|',$t); if(!in_array($val, $res)) $finalString.=$val."/"; } } echo $finalString; ?>
Вывод:
яблоко | птица / яблоко | кошка / яблоко | собака / яблоко | пороть / птица | птицы / птица | кошка / птица | собаки / птицы | пороть / птица | кошка / кот | кошка / кот | собака / кошка | пороть / птица | собака / кошка | собака / собака | собака / собака | пороть /
далее вы можете взорвать это на основе "/"
Это может вам помочь.