我遇到了这个问题。 我有一个像:
这样的数组数组([0] => usb [1] => usb pc [2] => pc [3] =>相机[4] =>相机168 [5] => 168)
我想输出上面数组中只包含[usb pc]和[camera 168]的两个条目 因为他们的解体已经有其他因素,所以不需要这些因素。
另一个例子
[考希克]
[kaushik是]
[kaushik很棒]
[是]
[很棒]
[大]
这应该只放[kaushik很棒]元素。
另一个例子:
[USB]
[PC]
[cam 168]
[凸轮]
[168]
这应该放[usb] [pc]和[cam 168]元素。
上述问题是一个问题的一部分,我想找出字符串中的分裂点数。
例如字符串是:USB PC CAMERA DOWNLOAD 168
关键字:USB PC CAMERA 168
在字符串中,如果可以猜测,关键字将被单词DOWNLOAD拆分。
所以分裂数= 1
如果我们采用字符串:我们的PC的USB CAMERA DOWNLOAD 168
此处关键字由我们的""拆分。 "所述"和"下载"
因此,分裂数= 3
答案 0 :(得分:1)
测试了它,它似乎工作正常。 (修正了欺骗的错误)
<?php
// $a = array( 'kaushik', 'kaushik is', 'kaushik is great', 'is', 'is great', 'great' );
$a = array('usb', 'pc', 'cam 168', 'cam', '168', 'cam 168');
$a = array_unique($a);
$s = count($a);
$p = array();
foreach ($a as $key => $b)
{
$x = 0;
for ($i = 0; $i < $s; $i++)
{
if ($key == $i) continue;
$c = $a; unset($c[$key]);
if (strpos($c[$i], $b) === false) $x++;
if ($x == $s - 1) array_push($p, $key);
}
}
foreach ($p as $o => $value) {
echo $a[$value]. ' ';
}
?>
行动here
答案 1 :(得分:0)
Haven没有对此进行彻底测试,但我认为它运作正常。
<?php
// just comment/uncomment to choose which $data you want to see in action
//$data = array("kaushik","kaushik is","kaushik is great","is","is great","great");
$data = array("usb","pc","cam 168","cam","168");
$current = "";
for($i=0;$i<count($data);$i++)
{
$current=$data[$i];
for($j=0;$j<count($data);$j++)
{
if($i<>$j)
{
if((str_replace($data[$j],"",$current))!=$current)
{
$data[$j]="";
};
}
}
}
for($i=0;$i<count($data);$i++)
{
if($data[$i]!="")
{
echo $data[$i]."\n";
}
}
?>
结果
kaushik is great
和其他数据集:
usb
pc
cam 168
在这里采取行动:http://3v4l.org/9XUPJ