Получить информацию из списка ассоциативного массива в php

0

Hy,

как я извлекаю информацию из ассоциативного массива вроде списка в php.

var_dump показывает что-то вроде этого:

array(2) { [1]=> string(1) "1" 
           [2]=> string(1) "2" } 
array(2) { [1]=> string(15) "gica_craioveanu" 
           [2]=> string(14) "alexandra_minu" } 
array(2) { [0]=> string(10) "craiovaMAX" 
           [1]=> string(10) "alexMinu10" }

Первый массив содержал идентификатор, второй - имя пользователя и третий - пароли.

Моя попытка:

    foreach ($row as $i => $id,$user_name,$user_pass) {
        echo "<tr>\n" .
          "  <td>".var_dump($id)."</td>\n".
          "  <td>".var_dump($user_name)."</td>\n".
           "  <td>".var_dump($user_pass)."</td>\n".
          " </tr>\n"
    }

one of php file contains the script to construct the list:

    while($row = mysqli_fetch_row($result))
{
/*$id[]=$row['user_id'];
$user_name[]=$row['user_name'];
$user_pass[]=$row['user_pass'];
$i=$i+1;*/
list($id[$i],$user_name[$i],$user_pass[$i++])=$row;
}
/*for($no=0; $no<$i; $no++){
            echo $row[$i]."/".$row[$i]."/";
}*/
include 'user.html.php';
}
?>

и user.html.php

для просмотра строк:

    <?php 
    //   while (list($id, $user_name, $user_pass)= each($row)) {
    foreach($row as $i => $id,$user_name,$user_pass){

    echo " <tr>\n" .
          "  <td>".$id."</td>\n".
          "  <td>".$user_name."</td>\n".
           "  <td>".$user_pass."</td>\n".
          " </tr>\n";

/*echo "<tr>\n" .
          "  <td>".var_dump($id)."</td>\n".
          "  <td>".var_dump($user_name)."</td>\n".
           "  <td>".var_dump($user_pass)."</td>\n".
          " </tr>\n"
          */

          /*for($no=0; $no<$i; $no++){
            echo "<tr>".
            "<td>".$row[$i]."</td>".
            "<td>".$row[$i]."</td>".
            "<td>".$row[$i]."</td>".
            "</tr>";*/
            }
            ?>
  • 0
    элемент foreach в массиве ... Что вы пробовали?
  • 0
    У меня есть 3 массива
Показать ещё 8 комментариев
Теги:
arrays

3 ответа

2
Лучший ответ
while($row = mysqli_fetch_row($result)) { 
    list($id[$i],$user_name[$i],$user_pass[$i++])=$row; 
}

...

for($i = 1; $i < count($id) + 1; $i++) {
    echo " <tr>\n" .
         "  <td>".$id[$i]."</td>\n".
         "  <td>".$user_name[$i]."</td>\n".
         "  <td>".$user_pass[($i - 1)]."</td>\n".
         " </tr>\n";
}
  • 0
    И если я хочу жить своим сценарием, который приносит мне список и только для доступа к его информации. Ниже приведены скрипты, которые я хочу оставить как есть: while ($ row = mysqli_fetch_row ($ result)) {list ($ id [$ i], $ user_name [$ i], $ user_pass [$ i ++]) = $ row; }
  • 0
    Тогда я бы сказал, что у вашего скрипта есть серьезные проблемы с качеством кода. Во всяком случае, я отредактировал свой ответ. Смотри выше.
Показать ещё 5 комментариев
2
$id = array("1", "2");
$user_name = array("gica_craioveanu", "alexandra_minu");
$user_pass = array("craiovaMAX", "alexMinu10");

Мы предполагаем, что 3 массива всегда одного размера:

// You make a loop on first array
for ( $i = 0 ; $i < count($id) ; $i++ )
{
    // You use index $i to access to 3 arrays.
    echo 'ID: '.$id[$i].'<br />';
    echo 'Name: '.$user_name[$i].'<br />';
    echo 'Password: '.$user_pass[$i].'<br />';
}
  • 0
    Но все 3 массива находятся внутри списка с именем row.
  • 0
    Вы просто должны изменить используемые переменные. Ответ отредактирован.
1
for($no=1; $no<$i+1; $no++)
          {
            echo "<tr>".
            "<td>".$id[$no]."</td>".
            "<td>".$user_name[$no]."</td>".
            "<td>".$user_pass[($no-1)]."</td>".
            "</tr>";
            }

Вдохновленный Typoheads

Ещё вопросы

Сообщество Overcoder
Наверх
Меню