2017-01-04 1 views
3

У меня есть проблема, связанная мой сценарий, который позволяет мне взять ключи и значения массива ($ массива) и добавить их в существующий массив ($ arraywithfourwords).Остановите другую петлю от значения

Проблема, с которой я столкнулся, заключается в том, что когда я петлю над $ array, цикл не прерывается, когда я этого ожидаю. В приведенном ниже случае он должен разорваться, когда встречается значение «A».

Для получения дополнительной информации,$ arraywithfourwordsопределяется с самого начала, и $ массив является массивом произвольно, а, к которой я попытка «матч» ключи и значения первого массива.

$ arraywithfourwords до сценария:

[Aero] => D 
[Blue] => V 
[Almond] => Q 
[Amazon] => X 

$ массива:

[Aero] => D 
[Blue] => V 
[Almond] => Q 
[Amazon] => X 
[Android] => A //STOP BREAK THE LOOP 
[Cherry] => J //Not continue 
[Citrine] => P //Not continue 
[Dark] => M  //Not continue 
[Celeste] => E //Not continue 

$ fourthKey = [Амазонка]

Сценарий:

$passed = false; 
foreach($array as $key => $value){ 
    if ($passed && $value != 'A' && $value != 'P') 
    { 
       $passed2 = 'valid'; 
       $arraywithfourwords[$key] = $value; 

    } 

    if ($key == $fourthKey && $value != 'A' && $value != 'P') 
    { 
       $passed = true; 
    } 
    if ($passed2 == 'valid') 
    { 
       break; 
    } 

} 

print_r($arraywithfourwords); 

$ arraywithfourwords после сценария:

[Aero] => D 
[Blue] => V 
[Almond] => Q 
[Amazon] => X 
[Cherry] => J //My problem 

$ arraywithfourwords после сценария, который я ищу:

[Aero] => D 
[Blue] => V 
[Almond] => Q 
[Amazon] => X 
+3

Что именно вы пытаетесь достичь здесь? Сравнивая два массива, посмотрите, находится ли одно значение в другом? Слияние массивов? – Koen

+0

Koen: Из четырех ключей $ arraywithfourwords найдите массив ($ array) с теми же ключами и добавьте в массив отсутствующие ключи и значения до тех пор, пока не поступит стоп-значение. –

+0

Если значения в '$ array' совпадают с' $ arraywithfourwords', вы хотите заменить ключи '$ arraywithfourwords' и сохранить размер 4 в' $ arraywithfourwords'. Это то, что ты хочешь ? – Kev

ответ

0

Это остановит цикл, когда вы нашли значение 'стоп' :

$stopValues = array('A', 'P'); 

foreach ($array as $key => $value) { 
    if(in_array($value, $stopValues)) { 
    break; 
    } 
    elseif(!in_array($value, $arraywithfourwords)) { // prevent to have duplicated values 
    $arraywithfourwords[$key] = $value; 
    } 
} 
+0

Спасибо за ваш ответ, но это не цель моего скрипта. Я проверил с другим $ массивом, и он заменяет, когда есть дубликат, 4 значения. –

+0

Вы просто хотите знать, имеет ли '$ array' все значения в' $ arraywithfourwords'? – Kev

+0

На самом деле, я просто хочу найти способ разбить петлю, даже если это первое слово. –

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

  • Нет связанных вопросов^_^