Reputation: 533
$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
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
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
Reputation: 1013
$videos_list = array_combine($videoskey_list, $videosname_list);
foreach($videos_list as $key => $name) {
// ...
}
Upvotes: 4