Jump to content
  • 0

php array средствами foreach например с 3-мя переменными


djforce
 Share

Question

Привет ребят. есть у меня готовый скриптик так вот там

foreach

обходит массив

foreach ($massiv1 as $key => $image) {
$out.= ''.$key.'<br>
'.$image.'<br>';
}

вот сам массив:

$massiv1 = array(
1 => 'achev01.gif',
2 => 'achev02.gif',
3 => 'achev03.gif',
4 => 'achev04.gif',
5 => 'achev05.gif',
6 => 'achev06.gif');

Все хорошо работает НО у меня не получается добавить еще одну переменную $name чтобы она соответствовала каждой картинке. Куда воткнуть ее не пойму... вот тут понятно:

foreach ($massiv1 as $key => $image) {
$out.= ''.$key.'<br>
'.$image.'<br>
'.$name.'';
}

а в массиве... или может где рядом разместить, а то у меня все чет массив в массиве получается...

спасибо!

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

а $name откуда вообще берется?

$name как то хотелось бы тоже впихнуть в массив

$massiv1 = array(
1 => 'achev01.gif',
2 => 'achev02.gif',
3 => 'achev03.gif',
4 => 'achev04.gif',
5 => 'achev05.gif',
6 => 'achev06.gif');

Это картинки которые выводятся в php а нужно еще вывести к каждой из них название рядом...

Link to comment
Share on other sites

  • 0

$massiv1 = array(
'achev01' => 'achev01.gif',
'achev02' => 'achev02.gif',
'achev03' => 'achev03.gif',
'achev04' => 'achev04.gif',
'achev05' => 'achev05.gif',
'achev06' => 'achev06.gif');
$i=1;
foreach ($massiv1 as $name => $image) {
$out.= ''.$i++.'<br>
'.$image.'<br>
'.$name.'';
}

Тоже думал об этом... НО $key выкинуть из foreach не могу и заменить его просто на +1 тоже так как это не число а именно ключ. Он дальше не прибавляется, он специфический, там и 1000 и 2000 есть. Т.е. $key ни куда ни деть... нужно добавить именно...(

И $key должны быть именно в массиве (они др скриптом используются...)

Edited by djforce
Link to comment
Share on other sites

  • 0
$massiv1 = array(
1 => array('achev01' => 'achev01.gif'),
2 => array('achev02' => 'achev02.gif'),
3 => array('achev03' => 'achev03.gif'),
4 => array('achev04' => 'achev04.gif'),
5 => array('achev05' => 'achev05.gif'),
6 => array('achev06' => 'achev06.gif')
);
foreach ($massiv1 as $key => $array) {
$out.= ''.$key.'<br>';
foreach ($array as $name => $image)
$out.= $image.'<br>'.$name.'';
}

Link to comment
Share on other sites

  • 0

имхо более красиво выглядел бы массив вида такого:

$massiv1 = array(
1 => array('name'=> 'achev01', 'image'=> 'achev01.gif')
);

Хотя тут вопрос как на самом деле происходить его наполнение. руками или из БД/файла.

  • Like 2
Link to comment
Share on other sites

  • 0

Привет, ребят, забросил эту тему но хочу доделать, вроде задача то простая, но ни как решить не могу, еще раз подробно опишу что именно нужно и что не получается:

Есть скрипт который выводит изображения с подписями с помощью кода:

foreach ($arBegunkichevrolet as $key => $image) {
$out.= '<input type="radio" id="b'.$key.'" name="begun" value="'.$key.'"'
.($key == $begun ? ' checked' : '')
.'><img src="/srv/metrics/auto/images/begunki/'.$image.'" border="0" align="absmiddle" /></br>'.$imgname.'</div>';
}

Этот код выводит изображение на странице вот так:

<input type="radio" id="b1" name="begun" value="1" checked="">
<img src="/srv/metrics/auto/images/begunki/achev01.gif" border="0" align="absmiddle"><br></div>

Чтобы получить переменные в отдельном файле переменных задан array

$arBegunkichevrolet = array(
1 => 'achev01.gif',
2 => 'achev02.gif',
3 => 'achev03.gif',
4 => 'achev04.gif'
);

Данная схема выводит на странице подряд изображения с радиобутонами для их выбора.

Но вот как сюда вставить еще одну переменную imgname, так что бы каждому изображению соответствовала картинка???? ума не приложу...

Все переменные задаю руками в файле переменных, все картинки лежат в папке со скриптами...

Буду очень признателен за дельные советы...

Link to comment
Share on other sites

  • 0

Вариант 1 ( как предложил Быколай ):


$massiv1 = array(
1 => array('name'=> 'achev01', 'image'=> 'achev01.gif')
);
//перебор
foreach($massiv1 as $k => $v){
echo $k . $v["name"] . $v["image"];
}

Вариант 2 (описание отдельным массивом с теми же ключами):


$massiv1 = array(
1 => 'achev01.gif'
);
$massiv1name = array(
1 => 'achev01'
);
//перебор
foreach($massiv1 as $k => $v){
echo $k . $v . $massiv1name[$k];
}

Edited by wwt
Link to comment
Share on other sites

  • 0

Вариант 1 ( как предложил Быколай ):


$massiv1 = array(
1 => array('name'=> 'achev01', 'image'=> 'achev01.gif')
);
//перебор
foreach($massiv1 as $k => $v){
echo $k . $v["name"] . $v["image"];
}

Вариант 2 (описание отдельным массивом с теми же ключами):


$massiv1 = array(
1 => 'achev01.gif'
);
$massiv1name = array(
1 => 'achev01'
);
//перебор
foreach($massiv1 as $k => $v){
echo $k . $v . $massiv1name[$k];
}

Ты просто супер чувак!!!! Все получилось вторым вариантом, мне кажется им попроще, получилось с первого раза! Спасибо!!!!!!!!!!!!!!!!!!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy