glob en array gekloot geeft nummer ipv url
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
de array ziet er goed uit, vervolgens haal ik met een random nummer een url er uit om weer te geven, maar soms staat er dan een nummertje in plaats van de url.
ik kan er niet bij waarom hij dat zou doen... bestaat dat getal dan niet? heb ik dat nummer zelf in die array gezet, en geeft hij me gewoon waar ik om vraag?
Die foreach is nutteloos. Die verandert $i en niet $img.
hipska, het enige wat jij doet is een tussenstapje maken toch?
ik heb de code ondertussen iets uitgebreid, maar jou truc schijnt niet te werken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$upload = wp_upload_dir();
$img = glob($upload['path']."/*150x150.[pj][np]g");
foreach($img as &$i) {
$i = str_replace($upload['path'], $upload['url'], $i);
}
//print_r($img);
$hadthese = array();
for($i = 0; $i < 5; $i++) {
$nr = rand(0, (count($img) - 1));
if(in_array($nr, $hadthese)) {
$i--;
continue;
} else {
echo '<img src="'. $img[$nr] .'" alt="foto" />';
$hadthese[] = $nr;
}
}
?>
$upload = wp_upload_dir();
$img = glob($upload['path']."/*150x150.[pj][np]g");
foreach($img as &$i) {
$i = str_replace($upload['path'], $upload['url'], $i);
}
//print_r($img);
$hadthese = array();
for($i = 0; $i < 5; $i++) {
$nr = rand(0, (count($img) - 1));
if(in_array($nr, $hadthese)) {
$i--;
continue;
} else {
echo '<img src="'. $img[$nr] .'" alt="foto" />';
$hadthese[] = $nr;
}
}
?>
het loopt fout bij nummer 6, terwijl ik nagekeken heb dat mijn array van 0 tot 6 gaat.
en als ik gewoon zeg dat hij het getal 6 uit de array moet halen krijg ik eerst <img src="0" enz... en daar na gaat hij naar 1 2 3... geen idee waar hij die getallen vandaan haalt!
hier is mijn code nu.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$upload = wp_upload_dir();
$img = glob($upload['path']."/*150x150.[pj][np]g");
foreach($img as &$i) {
$i = str_replace($upload['path'], $upload['url'], $i);
}
print_r($img);
$hadthese = array();
for($i = 0; $i < 5; $i++) {
echo $nr = mt_rand(0, (count($img) - 1));
if(in_array($nr, $hadthese)) {
$i--;
continue;
} else {
echo '<img src="'. $img[$nr] .'" alt="foto" />';
$hadthese[] = $nr;
}
}
?>
$upload = wp_upload_dir();
$img = glob($upload['path']."/*150x150.[pj][np]g");
foreach($img as &$i) {
$i = str_replace($upload['path'], $upload['url'], $i);
}
print_r($img);
$hadthese = array();
for($i = 0; $i < 5; $i++) {
echo $nr = mt_rand(0, (count($img) - 1));
if(in_array($nr, $hadthese)) {
$i--;
continue;
} else {
echo '<img src="'. $img[$nr] .'" alt="foto" />';
$hadthese[] = $nr;
}
}
?>
Edit:
oeioeioei, was dat even een bump *schaam**schaam*
Edit:
santhe, je had toch gelijk met je for loop... maar wat ze hier dan me bedoelen...
http://www.php.net/foreach
[nog ene edit]
toch niet helemaal... net onder dat stukje van mij quote zeggen ze dat de laatste referentie van i blijft, door i te unsetten werkt het wel met die & er voor.
Code (php)
1
2
3
2
3
foreach($img as $i => $k) {
$img[$i] = str_replace($upload['path'], $upload['url'], $k);
}
$img[$i] = str_replace($upload['path'], $upload['url'], $k);
}
santhe, je had toch gelijk met je for loop... maar wat ze hier dan me bedoelen...
Quote:
As of PHP 5, you can easily modify array's elements by preceding $value with &. This will assign reference instead of copying the value.
http://www.php.net/foreach
[nog ene edit]
toch niet helemaal... net onder dat stukje van mij quote zeggen ze dat de laatste referentie van i blijft, door i te unsetten werkt het wel met die & er voor.
Gewijzigd op 01/01/1970 01:00:00 door pepijn de vos