2014-11-10 3 views
0

Мой PHP скрипт:in_array не похоже на работу с массивами

$cont = array(); 
$slq_get_previous_country_list = "SELECT country FROM aw_countries_v2 WHERE id ='11120'"; 
$result_previous_country_list = mysql_query($slq_get_previous_country_list); 
while($row = mysql_fetch_assoc($result_previous_country_list)) 
{ 
    $cont[] = $row['country']; 
} 

print_r($cont);     
$not_data = array();  
$new_contry = array("Greece", 
        "Israel", 
        "Macedonia - The Frm Yugoslav Rep Of", 
        "Malta", 
        "India"); 


foreach($cont as $c) 
{ 
    if(in_array($c, $new_contry)) 
    { 
     echo $c."\n"; 
    } 
    else 
    { 
     $not_data[] = $c; 
    } 
} 

print_r($not_data); 

$cont массив:

Array 
(
    [0] => Belgium 
    [1] => Cyprus 
    [2] => Czech Republic 
    [3] => Fiji 
    [4] => Finland 
    [5] => Greece 
    [6] => Iceland 
    [7] => Ireland 
    [8] => Israel 
    [9] => Macedonia - The Frm Yugoslav Rep Of 
    [10] => Malaysia 
    [11] => Malta 
    [12] => Monaco 
    [13] => Poland 
    [14] => South Africa 
    [15] => Austria 
) 

$not_data массив:

Array 
    (
     [0] => Belgium 
     [1] => Cyprus 
     [2] => Czech Republic 
     [3] => Fiji 
     [4] => Finland 
     [5] => Iceland 
     [6] => Ireland 
     [7] => Malaysia 
     [8] => Monaco 
     [9] => Poland 
     [10] => South Africa 
     [11] => Austria 
    ) 

Результат:

array(
     [0] => austria 
    ); 

Что я делаю неправильно?

+0

его регистр и пространство – exussum

+0

У вас пытались отладить 'c' в части else? –

+0

Вы можете попробовать инкрементировать индекс '$ not_data' вручную в месте использования' $ not_data [] = ' – CodeBird

ответ

2

У вас есть пробела в ваших строках, а функция in_array пространства и чувствительно к регистру, поэтому попробуйте добавить это в качестве предшественника:

while($row = mysql_fetch_assoc($result_previous_country_list)) 
{ 
    $cont[] = trim($row['country']); 
} 

Вы также можете захотеть попробовать strtolower для сравнения строковых значений Обоего буев без случай беспокойство.

Кроме того, рекомендуется не использовать mysql_ но разработать до MySQLi или даже PDO.

+1

Спасибо за ваш ответ .... но его уже старый возраст .... в любом случае, я все равно дам вам верхнюю часть – Saswat

+0

@ Сасват да Я только что заметил даты, я увидел этот вопрос на моем SO-канале и только теперь видно, что это датировано 2014 годом! : - | , Надеюсь, вы решили оригинальную проблему! – Martin

+0

да бро, я решил вопрос .... спасибо хотя за вашу помощь .... :) – Saswat

Смежные вопросы