Я довольно новичок в php и могу использовать некоторую помощь, чтобы понять, как получить мой результат так, как он мне нужен из запроса к базе данных.
Мне нужен ассоциативный массив, подобный этому, 'bla' => 'bla'. Что я получаю из цикла foreach, так это из печати:
[0] => Array
(
[0] => test0
[name] => test0
[1] => 1
[customer_id] => 1
)
[1] => Array
(
[0] => test
[name] => test
[1] => 2
[customer_id] => 2
)
Вот мой цикл:
foreach($res as $key=>$val)
{
// have no idea..
}
Может кто-нибудь помочь мне отформатировать мои результаты так, чтобы они выглядели как 'index' => 'value'
Спасибо за любую помощь.
Вот пример кода, который использует foreach, но все же вызывает ассоциацию. Я не понимаю Я думаю, что мой набор результатов с индексами, потому что я не пишу цикл правильно. Вот код, который использует foreach
foreach ($items as $key=>$value) {
if (strpos(strtolower($key), $q) !== false) {
echo "$key|$value\n";
}
}
Вот часть класса базы данных, которую я использую для получения результатов.
$returnArray = array();
$i=0;
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
if($row)
$returnArray[$i++] = $row;
}
mysql_free_result($result);
return $returnArray;
После использования кода, который мне дали, чтобы опустить номера индексов, вот что у меня сейчас осталось. Это близко, но не то, что мне нужно.
Массив
(
[id] => 1
[cust] => Бобс авто
)
Вот как должна читаться строка выше
'1' => 'bobs auto'
То, что я пытаюсь сделать, - это отформатировать вывод для вызова JSON для поля предложения.
Я не могу заставить это работать. Здесь все после моего подключения к БД.
<code>$out_array = array();
foreach($items as $key=>$val)
{
if(is_int($key))
{
continue;
}
$out[$key['id']] = $val['cust'];
}
//echo'<pre>';
//print_r($out_array);
//echo'
';
foreach ($ out_array как $ key => $ value) {
if (strpos (strtolower ($ key), $ q)! == false) {
echo "$ key | $ value \ n";
}
}
Хорошо, я думаю, что спускаюсь домой. У меня есть то, что мне нужно. Это код, который у меня есть.
$out_array = array();
foreach($items as $key)
{
$out_array[$key] = $val;
//$out_array[$key['id']] = $key['cust'];
}
Обратите внимание, что закомментированная строка не работает, она выводит как id дважды, но не закомментированная строка работает просто отлично. Вот вывод из этого.
Array
(
[8] =>
[FAT BURGER] =>
)
С этого момента я бы просто использовал другой foreach для перебора всего набора данных? Вывод массива, который вы видите выше, взят из print_r.
Это то, что у меня сейчас есть и возвращает правильную связь, однако я должен закомментировать условие strpos, чтобы получить какие-либо результаты, и я не знаю почему. Правильно ли я вложил эти циклы foreach, как у меня?
$out_array = array();
foreach($items as $key)
{
// $out_array[$key] = $val;
$out_array[$key['id']] = $key['cust'];
foreach ($out_array as $key=>$value)
{
if (strpos(strtolower($key), $q) !== false)
{
echo "$key|$value\n";
}
}
}