Vous ne savez pas pourquoi cela se produit: j'ai un tableau contenant les tableaux suivants, voir var_dump
:
array(2) {
[0]=> array(1) {
[0]=> string(3) "ivr"
}
[1]=> array(1) {
[0]=> string(9) "ivr_dests"
}
}
Évidemment, ces données sont un peu redondantes, mais c'est ce qui a été renvoyé lors de l'obtention des valeurs avec xpath. Je fais donc une foreach
pour parcourir la première array()
et assigner ses valeurs de tableau imbriquées dans le premier tableau.
En gros, il devrait retourner ceci:
array(2) {
[0]=> string(3) "ivr"
[1]=> string(9) "ivr_dests"
}
Alors voici ce que j'ai mis en place:
foreach($arr as $key => $arr2){
$arr2[$key] = $arr2[$key][0];
unset($arr2[$key][0]); //This returns Fatal error: Cannot unset string offsets
//if I comment out the unset(), $arr[$key] returns the same value as it did (multidim array)
};
//I tried this too:
$i=0;
foreach($arr as $arr2){
$arr2[$i] = $arr2[$i][0];
$i++;
}
Des idées que je fais mal? Devrais-je m'y prendre autrement?
Merci,
Vous n'avez pas besoin de la valeur non définie, vous substituez les paramètres externes à la valeur du tableau interne, par opposition au tableau entier.
$a1 = array("ivr");
$a2 = array("ivr2");
$a3 = array($a1, $a2);
foreach($a3 as $key => $value){
$a3[$key] = $a3[$key][0];
//unset($arr2[$key][0]);
};
var_dump($a3);
Je pense que vous ne savez pas comment fonctionne foreach.
foreach($array as $key => $value)
{
echo $key;
echo $value;
}
affichera la clé et la valeur de chaque paire clé/valeur dans un tableau.
J'ai eu cette erreur dans une situation légèrement différente qui pourrait s'avérer utile.
unset($search['param']['complete'])
Cela provoquait la même erreur lorsque $ search ['param'] était toujours un string au lieu d'un array .
Je crois que vous avez la syntaxe pour le foreach
faux ... ce devrait être $key => $value
où vous avez $key => $arr2
. Ainsi, lorsque vous avez $arr2[$key]
, vous recherchez l'élément $key
dans le tableau imbriqué $arr2
. $arr2
est référencé par $key
, qui est une chaîne (pour un tableau associatif) ou un entier (pour un tableau non associatif). $arr2
pourrait également être référencé par $arr[$key]
.
L'erreur est dans le code.
Après avoir assigné
$arr2[$key] = $arr2[$key][0];
$arr2[$key]
devient la chaîne "ivr"
et $arr2[$key][0]
est le premier caractère de la chaîne et ne peut pas être désactivé