From: [EMAIL PROTECTED]
Operating system: winXP
PHP version: 4.3.0
PHP Bug Type: *General Issues
Bug description: foreach/if/else strange problems
I have an array. Filter him in foreach cycle. Size of array is 8. Have a
condition if/else - not all part of array come throw
code:
<?php
$info =
unserialize('a:8:{i:100;a:5:{s:2:"id";s:1:"1";s:7:"sponsor";s:1:"1";s:6:"weight";s:3:"100";s:3:"url";s:9:"ahsfd.com";s:4:"html";s:4:"html";}i:200;a:5:{s:2:"id";s:1:"2";s:7:"sponsor";s:1:"1";s:6:"weight";s:3:"200";s:3:"url";s:12:"kilemall.net";s:4:"html";s:4:"html";}i:300;a:5:{s:2:"id";s:1:"3";s:7:"sponsor";s:1:"1";s:6:"weight";s:3:"300";s:3:"url";s:10:"fuck2k.com";s:4:"html";s:4:"html";}i:400;a:5:{s:2:"id";s:1:"4";s:7:"sponsor";s:1:"2";s:6:"weight";s:3:"400";s:3:"url";s:7:"mail.md";s:4:"html";s:4:"html";}i:500;a:5:{s:2:"id";s:1:"5";s:7:"sponsor";s:1:"4";s:6:"weight";s:3:"500";s:3:"url";s:10:"quake3.com";s:4:"html";s:4:"html";}i:600;a:5:{s:2:"id";s:1:"6";s:7:"sponsor";s:1:"4";s:6:"weight";s:3:"600";s:3:"url";s:6:"sex.md";s:4:"html";s:4:"html";}i:700;a:5:{s:2:"id";s:1:"7";s:7:"sponsor";s:1:"5";s:6:"weight";s:3:"700";s:3:"url";s:6:"sex.ru";s:4:"html";s:4:"html";}i:800;a:5:{s:2:"id";s:1:"8";s:7:"sponsor";s:1:"6";s:6:"weight";s:3:"800";s:3:"url";s:7:"sex.net";s:4:"html";s:4:"html";}}');
$cookie = '1|3|5|7|9|11|13|15|17|19|21';
$cookie_br = explode('|', $cookie);
$spid = '';
$info2 = array();
$info_rest = array();
$i=0;
$i_rest=0;
echo "<hr>info <font color=red>".count($info)."</font>";
print_r($info);
foreach ($info as $k=> $line)
{
mt_srand((float)microtime()*1000000);// untill php4.2.0
$weight = mt_rand(1,10)* $line['weight']; // rand
if (!in_array($line['id'], $cookie_br) || ($spid==$line['sponsor']))
{
$info2[$weight] = array('id' =>$line['id'],
'sponsor'=>$line['sponsor'],
'weight' =>$weight,
'url' =>$line['url'],
'html' =>$line['html']);
$i++;//counter
}
else//rest
{
$info_rest[$weight] = array('id' =>$line['id'],
'sponsor'=>$line['sponsor'],
'weight' =>$weight,
'url' =>$line['url'],
'html' =>$line['html']);
$i_rest++;//counter
}
}
echo "<hr>info2 <font color=red>".count($info2)."</font>";
print_r($info2);
echo "<hr>inforest <font color=red>".count($info_rest)."</font> i_rest
".$i_rest;
print_r($info_rest);
?>
--
Edit bug report at http://bugs.php.net/?id=21582&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=21582&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=21582&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=21582&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=21582&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=21582&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=21582&r=support
Expected behavior: http://bugs.php.net/fix.php?id=21582&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=21582&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=21582&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=21582&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=21582&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=21582&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=21582&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=21582&r=gnused