seb*_*seb 0 php arrays associative-array
我有一个返回数组的函数(结果来自bd)
$resultat = $bd->Select($sql);
Run Code Online (Sandbox Code Playgroud)
foreach resultat在数组中,如果它们不符合要求,我将它们从我的数组中删除.
foreach($indexToRemove as $elem)
unset($resultat[$elem]);
Run Code Online (Sandbox Code Playgroud)
然后,我将我的数组放入会话数组中
$_SESSION['entrepriseTrouver'] = $resultat;
Run Code Online (Sandbox Code Playgroud)
然后,我将结果显示在页面中
$nbResultatParPage = 9; // Correspond au nombre de résultats maximale désirés par page
$index = (($nbResultatParPage*($_SESSION['page'] - 1)) + 1); // Trouve l'index actuel à afficher ( le nombre de résultats par page * le chiffre de la page précédente ) + 1
$max = $index + $nbResultatParPage; // Correspond a l'index maximum à afficher
for($index; $index < $max; $index++) // On affiche les entreprises
{
echo "<br/>";
if(isset($_SESSION['entrepriseTrouver'][$index-1]))
{
echo "#".$index."<br/>";
print_r($_SESSION['entrepriseTrouver'][$index-1]);
echo "<br/>";
//echo $_SESSION['entrepriseTrouver'][$index-1][3]."<br/>".$_SESSION['entrepriseTrouver'][$index-1][7]."<br/><br/>";
echo "-------------------------------------------------------------------------------------------------------------------------------";
}
}
Run Code Online (Sandbox Code Playgroud)
当我没有元素或超过1个元素进入我的数组但是当我只有1个元素时,我无法使用索引0访问它
print_r($_SESSION['entrepriseTrouver'][0]);
Run Code Online (Sandbox Code Playgroud)
我只能使用密钥访问它.例如,我的BD返回20个元素并且我取消了除#17之外的所有元素,我将不得不以这种方式访问它
print_r($_SESSION['entrepriseTrouver'][17]);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么当我的数组中只有1个元素时,我无法使用索引0访问我的数组.
在数组中取消设置值不会重新索引它.所以,你留下了一个数值为17的数组,就是这样.
使用array_values来解决这个问题.
foreach($indexToRemove as $elem){
unset($resultat[$elem]);
}
$_SESSION['entrepriseTrouver'] = array_values($resultat);
print_r($_SESSION['entrepriseTrouver'][0]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2717 次 |
| 最近记录: |