@Spiriiit

Можно подобное преобразование массива сделать без цикла?

Доброго времени суток!
Делаю вывод из базы в массив, но печалит наличие второго цикла, подскажите пожалуйста, можно ли обойтись без него, дабы повысить производительность?

function mysql_query_array($query, $error="error: mysql_query_array"){
    $r = mysql_query($query) or die($error);
    $row = mysql_fetch_assoc($r);

    $row_key = array_keys($row);

    $j=0;
    do{
        for($i=0; $i<count($row_key); $i++){
            $row_array[$row_key[$i]][$j] = $row[$row_key[$i]];
        }

        $j++;
    } while($row = mysql_fetch_assoc($r));

    unset($row);

    return $row_array;
}


И что скажите, уместно тут unset?
  • Вопрос задан
  • 2385 просмотров
Решения вопроса 1
Комментировать
Пригласить эксперта
Ответы на вопрос 5
FanatPHP
@FanatPHP
Чебуратор тега РНР
А что - производительность прям сильно страдает?
Это был риторический вопрос.

По коду видно жертву видеокурсов попова. На этом, в общем, вопрос можно закрывать.
Тебе уже ничто не поможет. Вне зависимости от того, нужно здесь unset, или нет.
Ответ написан
w999d
@w999d
Web-developer
По существу - эта функция вообще не должна существовать ни в каком виде.
Зачем вообще понадобилось менять ключи местами? Чтобы на выводе писать те же два цикла, чтобы развернуть массив назад?
Ответ написан
mnjghgmjyt
@mnjghgmjyt
php it бот сети
используй pdo и не учи кго по попову! хоть писать научишся
я так понял что тебе надо обработать каждую строку с бд поочерёдно. если да то вот
$b  = mysql_query("SELECT ip FROM svc ");
	while ($eastb = mysql_fetch_array($b))
	{

echo''.$eastb.'<br>';
	}
Ответ написан
Комментировать
LestaD
@LestaD
Веб разработчик
Мой совет - регистрируйся на хабре и много-много читай.
А ещё возьми себе под руку yii framework или yii2
Ответ написан
Комментировать
@ollisso
Если задача преобразовать такой результат:
id, name, var
1, name1, 10
2, name2, 10
3, name3, 30

в такой:
array(
id => array(0 => 1,0 => 2,0 => 3),
name => array(0 => name1,0 => name2,0 => name3),
var => array(0 => 10, 0 => 20, 0 => 30),
)


то код в принципе работает.

И повысить прозводительность его особо не получится, а если получиться то на сотые процента, т.е. это как экономия на спичках.

Вопрос вам: вы уверены что это самая важная часть кода которую надо оптимизировать в первую очередь ? :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы