по какой-то причине $post
всегда < 0. Функция indoxOf отлично работает. Я использую его на Отер кодов и он прекрасно работаетPhp индекс элемента в массиве, элемент обновления
по какой-то причине, даже после того, как я добавить элемент, как этот array_push($groups, $tempDon);
на следующем цикле я продолжаю возвращать -1
$donations = $this->getInstitutionDonations($post->ID);
$groups=array();
foreach($donations as $don) : setup_postdata($don);
$pos = $this->indexOf($don, $groups);
print_r($pos);
if($pos < 0)
{
$tempDom = $don;
$tempDon->count = 1;
array_push($groups, $tempDon);
}
else
{
$tempDom = $groups[$pos];
$tempDon->count++;
array_splice($tempDon);
array_push($groups, $tempDon);
echo '<br><br><br>ahhhhhhhhhh<br><br>';
}
endforeach;
protected function indexOf($needle, $haystack) { // conversion of JavaScripts most awesome
for ($i=0;$i<count($haystack);$i++) { // indexOf function. Searches an array for
if ($haystack[$i] == $needle) { // a value and returns the index of the *first*
return $i; // occurance
}
}
return -1;
}
Ну, может быть, потому, что вы никогда не меняете значение '$ pos'? – Ryan
Пожалуйста, не смешивайте стандартный и альтернативный синтаксис для if/foreach и т. Д. Избыточность вашего кода будет увеличиваться. Кроме того, определение 'indexOf' неизвестно (вам нужно добавить код) и что такое' $ don'? – hakre
-1 ??? и я меняю '$ pos = $ this-> indexOf ($ don, $ groups);' поэтому в следующий раз цикл acour 'groups' будет иметь один элемент, и я заставляю элемент быть тем же ... Все еще не получилось, почему -1 это не справедливо. – ShadowG