2017-05-22 18 views
0

データベースと比較私はこのように見える二次元アレイを有する:。検索2Dアレイ及びPHP

Array 
 
    (
 
     [0] => Array 
 
      (
 
       [0] => 0024E8D4915C 
 
       [1] => 0026B9AC17A0 
 
       [2] => 080027042B7C 
 
       [3] => 1866DA0EBD4C 
 
       [4] => " "\\& 
 
    O��" 
 
       [6] => 64006A5F5DE0 
 
       [7] => B05ADACE88BC 
 
       [8] => B439D6388380 
 
       [9] => D067E51A3B4F 
 
       [10] => D4BED9C2B47F 
 
       [11] => D4C9EFB500A3 
 
       [12] => "�M��>�" 
 
       [13] => F48E382F5B06 
 
      ) 
 

 
     [1] => Array 
 
      (
 
       [0] => 25 
 
       [1] => 25 
 
       [2] => 25 
 
       [3] => 25 
 
       [4] => 25 
 
       [5] => 25 
 
       [6] => 25 
 
       [7] => 25 
 
       [8] => 0 
 
       [9] => 25 
 
       [10] => 25 
 
       [11] => 25 
 
       [12] => 25 
 
       [13] => 25 
 
      ) 
 

 
    )

私はスイッチ上のsnmpwalkを使用して、これらの得られた[1] =>配列:上記のMACアドレスに関連付けられているポート番号です。

Array 
 
    (
 
     [0] => 0026B9AC17A0 
 
     [1] => 008064A890B2 
 
     [2] => 1866DA3440E9 
 
     [3] => 3464A9D5B334 
 
     [4] => 5C260A4F8B7F 
 
     [5] => 0050568A6F7B 
 
    )

私は、対応するポート番号と一緒にデータベースにないthatsのMACアドレスを取得するにはどうすればよい:iはデータベースに保存されたMACアドレスに対して、これらのMACアドレスを比較する必要が MACアドレスに? 結果は次のようになります。

mac address:  port number: 
 
[0] => 0024E8D4915C 25 
 
[1] => 080027042B7C 25 
 
[2] => 1866DA0EBD4C 25 
 
[3] => " "\\&  25 
 
    O��" 
 
[4] => 64006A5F5DE0 25 
 
[5] => B05ADACE88BC 25 
 
[6] => B439D6388380 0 
 
[7] => D067E51A3B4F 25 
 
[8] => D4BED9C2B47F 25 
 
[9] => D4C9EFB500A3 25 
 
[10] => "�M��>�" 25 
 
[11] => F48E382F5B06 25

+0

私はmysqlのクエリを使用して、データベースから値を取得する:$ dbConnectの=新しいmysqliの( 'localhostの'、 'ルート'、 ''、 '名前'); $ query = $ dbconnect-> query( "SELECT mac FROM mac"); –

答えて

0
//suppose your array's name is $array 

for ($i=0; $i < count($array[0]); $i++) { 
    $res[] = array(
     'mac' => $array[0][$i], 
     'port' => $array[1][$i] 
    ); 
} 

print_r($res); 
0

なぜ、あなたはこのように見えるの配列を作成しませんか?

Array(
    [0] => Array(
     ['mac'] => '0026B9AC17A0', 
     ['port'] => 25 
), 
    [1] => Array(
     ['mac'] => '080027042B7C', 
     ['port'] => 25 
), 
    [2] => Array(
     ['mac'] => 'B439D6388380', 
     ['port'] => 0 
) 
    ... 
) 
+0

どうすればそれをやりますか? –

+0

DBからデータを取得する方法によって異なりますが、正直言ってあなたの質問にはそれほど明確ではありません。 –

+0

私はそれらを取得するためにmysqlクエリを使用します: –

0

eval.inを試すことができます。最終的に空の文字や奇妙な文字を削除することができます。

<?php 

$dbArray = [ 
     "0026B9AC17A0", 
     "008064A890B2", 
     "1866DA3440E9", 
     "3464A9D5B334", 
     "5C260A4F8B7F", 
     "0050568A6F7B" 
]; 

$resultArray = [ 
    [ 
       "0024E8D4915C", 
       "0026B9AC17A0", 
       "080027042B7C", 
       "1866DA0EBD4C", 
       "", 
       "", 
       "64006A5F5DE0", 
       "B05ADACE88BC", 
       "B439D6388380", 
       "D067E51A3B4F", 
       "D4BED9C2B47F", 
       "D4C9EFB500A3", 
       "M000000", 
       "F48E382F5B06" 
    ], 
    [ "25", "25", "25", "25", "25", "25", "25", "25", "0", "25", "25", "25", "25", "25"] 
]; 
echo "mac address: \t port number:\n"; 
foreach($resultArray[0] as $key=> $value){ 
    if(!in_array($value, $dbArray)){ 
    echo $value ." \t ". $resultArray[1][$key] ."\n"; 
    } 
}