私はループのPHP while
とfor
ループがあります。なぜキーを使って配列要素にアクセスできないのですか?
while
ループは$ch_for
のデータを$ch_for
の配列に格納しています。
Array ([ch7] => Seven [ch8] => Eight)
そして、このラインを使用してfor
ループでこのarray
データにアクセスしようとしている:
echo $ch_for["ch{$x}"];
しかし、それはエラーメッセージを示しています:不正この配列は、これらの値を示しているprint_r
を使用して
文字列オフセット 'ch7' in ...
最初のキーがch7
あるので、あなたはあなたの他の分岐で$ch_for
を上書きしているループ
$ch_for = array();
$ch_name = array();
while ($fetchChannel = mysqli_fetch_array($getChannel)) {
$ch_id = (int) $fetchChannel['ch_id'];
$ch_for[$fetchChannel['ch_name']] = htmlspecialchars($fetchChannel['ch_for']);
$ch_name[] = htmlspecialchars($fetchChannel['ch_name']);
}
for ($x=1; $x<=12; $x++) {
if( in_array('ch'.$x, $ch_name)) {
$sel = 'checked = "checked" ';
echo $ch_for["ch{$x}"];
} else {
$sel = '';
$ch_for = '';
}
?>
<div class="checkbox form-inline">
<label><input <?php echo $sel; ?> type="checkbox" name="ch_name[]" value="ch<?php echo $x; ?>">CH<?php echo $x; ?></label>
<input type="text" name="ch_for[]" value="<?php echo $ch_for; ?>" placeholder="Channel details" class="form-control ch_for">
</div>
<?php
}
var_dump(array_keys($ch_for));
array(2) {
[0]=>
string(3) "ch7"
[1]=>
string(3) "ch8"
}
することができます 'のvar_dump(array_keys($ ch_for));'とポスト結果?他のブランチで '$ ch_for'を上書きしています。 – ccKep