Josh Poor
Josh Poor

Reputation: 533

How to use && in foreach in PHP?

   $videoskey_list = explode(',',$result[$x]["videos_key"]);
   $videosname_list = explode(',',$result[$x]["videos_name"]); 

   foreach($videoskey_list as $videoskey => $videos_key && $videosname_list as $videosname => $videos_name) 
    {
        echo '  <button id="playtrailer" class="playtrailer" data-src="'.$videos_key.'"> '.$videos_name.' </button>';
    }

How do i use && in foreach. It should work, right? Or PHP do not support && in foreach?

Error

Parse error: syntax error, unexpected '&&' (T_BOOLEAN_AND),

Upvotes: 2

Views: 4008

Answers (3)

RJParikh
RJParikh

Reputation: 4166

You can use array_combine()

$videoskey_list = explode(',',$result[$x]["videos_key"]);
$videosname_list = explode(',',$result[$x]["videos_name"]); 

foreach (array_combine($videoskey_list, $videosname_list) as $videos_key => $videos_val) {
    echo '  <button id="playtrailer" class="playtrailer" data-src="'.$videos_key.'"> '.$videos_val.' </button>';
}

OR

Use array_merge()

foreach (array_merge($videoskey_list, $videosname_list) as $videoskey => $videos_val) {
        echo '  <button id="playtrailer" class="playtrailer" data-src="'.$videos_key.'"> '.$videos_val.' </button>';
    }

Demo

<?php
$videoskey_list = array('111','222','333');
$videosname_list = array('test','abc','xyz');

foreach (array_combine($videoskey_list, $videosname_list) as $videos_key => $videos_val) {
  echo '  <button id="playtrailer" class="playtrailer" data-src="'.$videos_key.'"> '.$videos_val.' </button>';
}

Output

<button id="playtrailer" class="playtrailer" data-src="111"> test </button>  
<button id="playtrailer" class="playtrailer" data-src="222"> abc </button>  
<button id="playtrailer" class="playtrailer" data-src="333"> xyz </button>

Demo Link: Click Here

Upvotes: 2

Nawin
Nawin

Reputation: 1692

If your keys and values are both means this should be work...

$videoskey_list = explode(',',$result[$x]["videos_key"]);
$videosname_list = explode(',',$result[$x]["videos_name"]);
foreach( $videoskey_list as $index => $videos_key ) {
   echo '  <button id="playtrailer" class="playtrailer" data-src="'.$videos_key.'"> '.$videosname_list[$index].' </button>';
}

EDITED: If we use array_combine The both array should be equal. Here We can use How many keys we have that much Output will get here.

In array_merge The both arrays are merged so we can't fine the same key and value.

Explanation For this Answer:

First we get an videoskey_list As key and Value. If match the Key with the Value. We can use videoskey_list's key as videosname_list's index. For example check here with this code.

$numbers = array('1','2','3');
$alpha = array('a','b','c');
foreach( $numbers as $index => $number ) {
  echo $number .'->'. $alpha[$index] .'<br />';
}

Upvotes: 5

Max
Max

Reputation: 1013

$videos_list = array_combine($videoskey_list, $videosname_list);
foreach($videos_list as $key => $name) {
    // ...
}

Upvotes: 4

Related Questions