用字符串创建数组,然后与另一个数组进行比较

时间:2011-04-14 16:02:01

标签: php

我有两个问题: 1.如果在给定起始字符串和结束字符串的情况下将字符串分解为数组,则将数组元素从中间的所有内容中取出。 2.将我的新数组与另一个数组进行比较,如果有任何元素匹配,请让用户知道哪些值匹配。

我需要将字符串的内容分解为数组我需要mac地址的值

[MAC]
mac=12EG23OCSOPC
mac=111111111111
mac=222222222222
mac=333333333333

我需要“mac =”之后和\ n

之前的所有值

然后我需要将这些值与另一个数组进行比较,如果有相同的项目我需要让用户知道哪些匹配这是我到目前为止所拥有的。

function count_compare_macs($macs_to_compare, $new_array)

{
    $macs_to_compare_count = count($macs_to_compare);
    $new_array_count = count($new_array);

        if(($macs_to_compare_count + $new_array_count) >= 5)
            {

            return  false;
                    $error_message="You already have 5 MAC address in your system";
            }else{
              //here is where i need to compare the two arrays and if any are the same say false and set the error message.
                      $compare_arrays = array_Diff($macs_to_compare,$new_array)
                         if (!$compare_arrays){
                                return true;
                               }else{


//here is where i need to compare the two arrays and if any are the same say false and set the error message.
                                      $error_message= "The following mac is already used" . $match
return false;
                                       }
                }
    }

1 个答案:

答案 0 :(得分:1)

你能为#1做些什么是:

$str = "mac=12EG23OCSOPC
mac=111111111111
mac=222222222222
mac=333333333333";

$strSplode = explode("\n",$str);

$mac = array();

foreach($strSplode as $m){
     list($temp, $mac[]) = explode("=", $m);
}

这是第1部分的演示:http://codepad.org/Taiyrvf2
(在演示中,我必须按\r\n分解第一部分,因为这是分割线的,它取决于字符串的编码方式)

第二部分:

function find_matches($mac1, $mac2){

   $matches = array();

   foreach($mac1 as $mac){
      if(in_array($mac, $mac2)){
          $matches[] = $mac;
      }
   }

   //return an array of matching mac addresses
   return $matches;

}