"No se puede usar el desplazamiento de cadena como una matriz" cuando se hace referencia a un elemento de la matriz por clave

Estoy intentando acceder al valor ('Id') de una matriz.

Este es mi código para acceder a la matriz:

$value[0]['Id']

Este es el error: X

No se puede usar el desplazamiento de cadena como una matriz

La matriz a la que intento acceder: Y

array(1) { [0]=> array(1) { ["Id"]=> string(2) "42"} }

El código circundante

$query = "select Id from test where Tags = " .  "\"$chosedOption[1]\""; 
    $result = mysql_query($query, $link);
    $value = mysqlArray($result);
    $value_id = null;
    $value_id = $value[0]['Id']; // gives X
    var_dump($value[0]['Id']); 
    var_dump($value); // gives Y


function mysqlArray($result) {
$table_result = array();
$r = 0;
while($row = mysql_fetch_assoc($result)) {
    $arr_row = array();
    $c = 0;
    while ($c < mysql_num_fields($result)) {
        $col = mysql_fetch_field($result, $c);
        $arr_row[$col -> name] = $row[$col -> name];
        $c++;
    }
    $table_result[$r] = $arr_row;
    $r++;
}
return $table_result; }

preguntado el 10 de mayo de 11 a las 13:05

algo no parece estar bien en el volcado de su matriz. Falta un [cercano a "id". ¿Puede mostrar el código de cómo inicializó la matriz? Seria útil -

¿Es esa la declaración de la matriz o simplemente está tratando de mostrarnos la estructura de la matriz? -

@Jospeh: creo que es el resultado de var_dump ($ valor) -

Sí, lo edité. Y de hecho es un var_dump. -

¿Puedes publicar algo del código que lo rodea? Esto debería funcionar bien sobre la base de la información que tenemos. -

2 Respuestas

¿Puede ser que $ value_id ya tenga un valor (cadena)?

contestado el 10 de mayo de 11 a las 18:05

$ value_id es una variable que nunca se usa. Es la primera vez que tiene valor. Para asegurar un declare $ value_id como sigue antes de $ value_id = $ value [0] ['Id']: como vacío $ value_id = null; . - user746873

Reemplazar mysqlArray ($ resultado); con mysql_fetch_array ($ resultado);

contestado el 10 de mayo de 11 a las 18:05

Lo extraño es que no puedo reproducir este error. Pruebe esto (con $ link) solamente, ¿todavía tiene el error? ¿Qué otro código hay en esa página? - Paolo_Mulder

Con la mysql_fetch_array(), tendrías que acceder $value['Id'] más bien que $value[0]['Id']. - binaryLV

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.