2015-09-15 4 views
1

У меня есть некоторые «коды», которые я получаю из базы данных и сортирую их в таблицах в php. Все коды, которые начинаются с номером 1 в первом массиве, все коды, которые начинаются с 2 во второй .. до 9.Поиск определенного кода в массиве

Array 
(
[1] => Array 
    (
     [0] => 1264 
     [1] => 1264536 
     [2] => 1264537 
     [3] => 1264538 
) 
[2] => Array 
    (
     [0] => 213 
     [1] => 21320 
     [2] => 21321 
     [3] => 21322   
)... 

Кодекса

function getCodes($codeEgr){ 

$oneTable = array(); 
$twoTable = array(); 
$threeTable = array(); 
$fourTable = array(); 
$fiveTable = array(); 
$sixTable = array(); 
$sevenTable = array(); 
$eightTable = array(); 
$nineTable = array(); 

foreach($codeEgr as $row) 
{ 
     list($destination,$codeTegr,$price,$effectiveDate) = $row; 
     $code = $codeTegr;    
     $first = substr($code,0,1); 

     switch($first) 
     { 
       case 1: 
         $oneTable[] = $code; 
         break; 
       case 2: 
         $twoTable[] = $code; 
         break; 
       case 3: 
         $threeTable[] = $code; 
         break; 
       case 4: 
         $fourTable[] = $code; 
         break; 
       case 5: 
         $fiveTable[] = $code; 
         break; 
       case 6: 
         $sixTable[] = $code; 
         break; 
       case 7: 
         $sevenTable[] = $code; 
         break; 
       case 8: 
         $eightTable[] = $code; 
         break; 
       case 9: 
         $nineTable[] = $code; 
         break; 
     } 
} 

$codeTable = array(1 => $oneTable,2 => $twoTable,3 => $threeTable,4 => $fourTable,5 => $fiveTable, 
6 => $sixTable,7 => $sevenTable,8 => $eightTable,9 => $nineTable); 
return $codeTable; 

}

Я хочу знать, как найти код в этом массиве(). Например, если у меня есть код, похожий на 156545, я просматриваю коды только в первом массиве, а не в других. Если у меня есть подобный код 265456 Я ищу во втором массиве ... И после возвращения истинного или ложного Если найдены или не

Я не знаю, как это сделать в PHP Im новичок для петель

+2

http://php.net/manual/en/function.array-search.php – arkascha

+0

вы, ребята, должны начать после используя фактический массив вместо результата массива. –

ответ

2

Это может быть простой подход:

$code= 123123; 
$first = substr($code,0,1); 

    switch($first) 
    { 
      case 1: 
        $key = array_search($code, $oneTable); 
        break; 
      case 2: 
        $key = array_search($code, $twoTable); 
        break; 
      and so on... 
    } 
+0

спасибо за помощь –

0

Я также переработан код для вас

function getCodes($codeEgr){ 
    $codes = array(); 

    foreach($codeEgr as $row) 
    { 
      list($destination,$codeTegr,$price,$effectiveDate) = $row; 
      $code = $codeTegr;    
      $first = $code[0]; // get first digit of code string 

      $codes[$first][] = $code; 
    } 

    return $codes; 
} 

function searchCode($codesArr, $code){ 
    $firstDigit = $code[0]; 

    $searchIn = (isset($codesArr[$firstDigit])) ? $codesArr[$firstDigit] : array(); 

    return array_search($code, $searchIn) 
}