【发布时间】:2015-08-10 20:39:34
【问题描述】:
我有以下从 msqli 查询生成的数组。
Array
(
[0] => 21
[1] => AAAAA
[2] => BBBBB
[3] => 1234567
[4] => aaa
[5] => bbb
[6] => ccc
[7] => ddd
[8] => 2015-01-19 03:31:33
[9] => 1
[10] => 5
[11] => 5, - not set -;9, - not set -;10, - not set -;11, - not set -;14, - not set -;19, 12;20, mm_cb_on;21, - not set -;27, Noe;28, Pena;62, mm_cb_off
)
Array
(
[0] => 22
[1] => AAAAA
[2] => BBBBB
[3] => 1234567
[4] => aaa
[5] => bbb
[6] => ccc
[7] => ddd
[8] => 2015-01-19 03:31:33
[9] => 1
[10] => 6
[11] => 5, - not set -;9, - not set -;10, - not set -;11, - not set -;14, - not set -;20, mm_cb_on;21, - not set -;
)
Array
(
[0] => 23
[1] => AAAAA
[2] => BBBBB
[3] => 1234567
[4] => aaa
[5] => bbb
[6] => ccc
[7] => ddd
[8] => 2015-01-19 03:31:33
[9] => 1
[10] => 7
[11] => 5, - not set -;11, - not set -;14, - not set -;19, 23;20, mm_cb_on;21, - not set -;27, Noe;28, Pena;62, mm_cb_off
)
我正在像这样循环这些数据:
while ($row = mysqli_fetch_array($data)) {
echo "<td nowrap>" .$row{'first_name'}. "</td>
<td nowrap>" .$row{'last_name'}. "</td>
.......";
}
当我到达数组中的最后一个键时,我正在遍历该数据,并像这样爆炸:
while ($row = mysqli_fetch_array($data)) {
echo "<td nowrap>" .$row{'first_name'}. "</td>
<td nowrap>" .$row{'last_name'}. "</td>
.......";
$custom_fields = $row[11];
$fields = explode(";", $custom_fields);
foreach ($fields as $keys) {
$key = explode(',', $keys);
var_dump($key);
}
}
该 var 转储产生以下数组结构(对于前一个数组中的第一个键):
Array
(
[0] => 5
[1] => - not set -
)
Array
(
[0] => 9
[1] => - not set -
)
Array
(
[0] => 10
[1] => - not set -
)
Array
(
[0] => 11
[1] => - not set -
)
Array
(
[0] => 14
[1] => - not set -
)
Array
(
[0] => 19
[1] => 12
)
Array
(
[0] => 20
[1] => mm_cb_on
)
Array
(
[0] => 21
[1] => - not set -
)
Array
(
[0] => 27
[1] => Noe
)
Array
(
[0] => 28
[1] => Pena
)
Array
(
[0] => 62
[1] => mm_cb_off
)
我正在尝试创建这样的条件:
if (isset($key[0]) && $key[0] == 19) { // this produce none for every row
$prov_id = $key[1];
} else {
$prov_id = 'None';
}
if ($key[0] == 27) {
$fm2_fname = $key[1];
} else {
$fm2_fname = '';
}
if ($key[0] == 28) {
$fm2_lname = $key[1];
} else {
$fm2_lname = '';
}
我遇到的问题是循环中的一些项目没有$key[0] == "19" ...我将如何在 foreach 循环中处理这个问题?非常感谢任何帮助。
【问题讨论】:
-
没有
$key[0] == "19"的物品怎么办? -
如果 $key[0] 不存在,那么你的爆炸失败了。所以...
isset($key[0])? -
谢谢@Marc B。我明白这一点,但 $key[0] 将始终存在于数组中的某个位置,它并不总是等于 19 ...所以
isset永远是正确的。跨度> -
那到底是什么问题?
-
我需要获取
$key[1]的值,其中$key[0] == 19,如果没有等于19的$key[0],我需要提供一个空值。