2014-09-25 62 views
0
$string = 'Ma'; 

$arr1 = str_split($string); 

foreach($arr1 as $a) 
{ 
    echo $a."<br>"; 
} 

$os = array("Mac", "NT", "Irix", "Linux", "apple"); 

这里我在$string变量中有一些字符串。在这一行echo $a."<br>";它返回这个结果在数组中找到一个带有分隔变量字母的字符串

M 
a 

它分割字符串。现在我想用这些分开的字符串(M a)找到这些字(array("Mac", "NT", "Irix", "Linux", "apple");)。例如,我的字符串是Ma,首先我想查找数组中的字符串,该字符串以M开头,接下来我想在数组中找到另一个字符串,该字符串与a一致。然后我想要回显这两个字符串。结果应该是Mac apple。我如何得到它?

+0

'的foreach($改编为$项目){如果(SUBSTR($项,0,1)== 'M') { 找到了(); }}' – 2014-09-25 17:02:15

回答

1

只是循环数组和比较字符串的第一个字母。

$string = 'Ma'; 
$arr1 = str_split($string); 
$os = array("Mac", "NT", "Irix", "Linux", "apple"); 

foreach($arr1 as $a) 
{ 
    foreach ($os as $o) 
    { 
     if ($o[0] === $a) 
      echo $o, "<br/>"; // Mac<br/>apple<br/> 
    } 
} 

或者,用不同的方法:

$string = 'Ma'; 
$arr1 = str_split($string); 
$os = array("Mac", "NT", "Irix", "Linux", "apple"); 

foreach ($os as $o) 
    if(in_array($o[0], $arr1)) 
     echo $o, "<br/>"; 
1

你可以做这样的事情:

$string = 'Ma'; 
$oses = array("Mac", "NT", "Irix", "Linux", "apple"); 

foreach (str_split($string) as $first_letter) { 
    $fl_array = preg_grep("/^".$first_letter."/", $oses); 

    var_dump($fl_array); 
} 

输出:

array(1) { 
    [0]=> 
    string(3) "Mac" 
} 
array(1) { 
    [4]=> 
    string(5) "apple" 
} 
0
<?php 


    $arr=array("Mac",'apple',"linux"); 

     foreach($arr as $v){ 

      if(preg_match("/^M/",$v)){ 

      echo $v."\n"; 
     } 

     if(preg_match("/^a/",$v)){ 

      echo $v; 
     } 
} 
?> 
相关问题