2014-07-06 7 views
0

다음 foreach 쿼리는 [ 'options'] [ 'Colors']에 값만 삽입하고 [ 'options'] [ 'Color']에는 값을 삽입하지 않습니다 ???foreach 루프 내에서 조건을 사용하는 방법

업데이트 된 질문 :

if (!is_array($value['options']['Colors'])) { 
$value['options']['Colors'] = array($value['options']['Colors']); 
} 
if (!is_array($value['options']['Color'])) { 
$value['options']['Color'] = array($value['options']['Color']); 
} 

if(isset($value['options']['Colors'])) { 
$colorArr = $value['options']['Colors']; 
} else if(isset($value['options']['Color'])) { 
$colorArr = $value['options']['Color']; 
} 

foreach ($colorArr as $colors) { 
$stmt->execute(array(':pid' => $PID, ':colors' => $colors)); 
} 
+0

물론 있습니다. 'OR'은 왼쪽과 오른쪽 피연산자를보고 결과가 '참'또는 '거짓'인 연산자입니다. '진실'또는 '거짓'을 '예언'할 수는 없습니다. –

답변

0

당신은 그것이 이해가되지 않습니다 ...이 방법으로이 작업을 수행 할 수 없습니다. 정확히 무엇을하고 싶니? 당신은 다음과 같은 기능을와 in_array 사용할 수있는 배열의 값의 존재를 확인하려는 경우

:

if(in_array("someValue", $someArray)) { 
    // Do something ... 
} 
+0

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제든지 댓글을 달 수 있으며 충분한 [평판] (http://stackoverflow.com/help/whats-reputation)을 얻으면 [모든 게시물에 댓글을 달 수] 있어야합니다 (http://stackoverflow.com/help/privileges/comment). – Holt

+0

알았어, 알 겠어,하지만 user3790186이 질문을 바꾸고 내 대답을 무관하게 만들었 어. – Ordidaad

0

우리는 사용 또는 foreach 루프에서 수 없습니다. 대신 우리가 앞서 아래와 같이 갈 수있는 다음 확인하기 위해 if 문을 사용할 수 있습니다 :

if(isset($value['media']['options']['Colors'])) { 
    $colorArr = $value['media']['options']['Colors']; 
} else if(isset($value['media']['options']['colors'])) { 
    $colorArr = $value['media']['options']['colors']; 
} 

foreach ($colorArr as $colors) { 
    // You can use $colors now where you want 
} 
+0

내 질문을 업데이트했습니다 ... foreach 루프 예상대로 작동하지 않습니다. – user3790186

0

당신이 정말로 고집 중 키가 사용 될 수 있도록 배열을 가지고에, 나는 당신이 그들을 사용하기 전에 소문자로 모두 변환 제안

foreach($value['media']['options'] as &$key => $value){ 
    if($key == 'Colors'){ 
     $key = 'colors'; 
    } 
} 

그런 다음 이전과 배열을 사용하려고 노력하지만, '색상'

+0

내 질문을 업데이트했습니다 ... foreach 루프가 예상대로 작동하지 않습니다 .. – user3790186

+0

$ colorArr [] = $ value [ 'options'] [ 'Colors']; – Alex

+0

대괄호는 배열을 형성합니다. $ colorArr가 현재 배열이 아니기 때문에 foreach가 실패했습니다 – Alex

0

그런 다음 배열을 병합 할 수 루프 검사 또는 문에 대한 필요없이,하지만 키 충돌주의하십시오. 하나의 옵션은 "색상"과 "색상"을 모두 가질 수 있으며, 실제로는 더러워 질 수 있습니다. 어느 것이 사용합니까, 첫 번째, 두 번째, 둘 다, 없음?

$colors = array_merge ($value['media']['options']['Colors'], $value['media']['options']['colors']); 

foreach($colors as $color){ 

} 
+0

내 질문을 업데이트했습니다. – user3790186

관련 문제