У меня есть код, над которым я работаю и не могу понять, как обойти его для нулевого значения
for ( $k = 0; $k < count( $iva_all_dpt_info[ $weekdays[ $j ] ] ); $k++ ) {
if ( in_array( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'], $hours ) ) {
$iva_departments[$iva_all_dpt_info[$weekdays[$j]][$k]['title']]['doctors_id'][] = isset($iva_all_dpt_info[ $weekdays[$j]][$k]['doctor_id'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors_id'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['doctor_id']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors_id'][] = '';
$iva_departments[$iva_all_dpt_info[$weekdays[$j]][$k]['title']]['doctors'][] = isset($iva_all_dpt_info[ $weekdays[$j]][$k]['doctors'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['doctors']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors'][] = '';
$iva_departments[$iva_all_dpt_info[$weekdays[$j]][$k]['title']]['department'][] = isset($iva_all_dpt_info[ $weekdays[$j]][$k]['department'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['department'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['department']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['department'][] = '';
$iva_departments[$iva_all_dpt_info[$weekdays[$j]][$k]['title']]['specialty'][] = isset($iva_all_dpt_info[ $weekdays[$j]][$k]['specialty'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['specialty'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['specialty']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['specialty'][] = '';
// if timeformat is 12 hours
if ( $iva_timeformat == 12 ) {
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['hours'][] = date( 'h.i a', strtotime( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'] ) ) . ' - ' . date( 'h.i a', strtotime( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['endtime'] ) );
} else {
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['hours'][] = $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'] . ' - ' . $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['endtime'];
}
}
}
Не уверен, как использовать isset для индекса title
. Как я могу использовать isset в нем.
Используйте этот код:
for ( $k = 0; $k < count( $iva_all_dpt_info[ $weekdays[ $j ] ] ); $k++ ) {
if ( in_array( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'], $hours ) ) {
if (isset($iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ])){
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors_id'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['doctor_id'];
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors'][] = $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['doctor'];
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['department'][] = $iva_all_dpt_info[ $weekdays[ $j ]][$k]['department'];
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['specialty'][] = $iva_all_dpt_info[ $weekdays[ $j ]][$k]['specialty'];
// if timeformat is 12 hours
if ( $iva_timeformat == 12 ) {
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['hours'][] = date( 'h.i a', strtotime( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'] ) ) . ' - ' . date( 'h.i a', strtotime( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['endtime'] ) );
} else {
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['hours'][] = $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'] . ' - ' . $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['endtime'];
}
}
}
}
Добавьте isset и в эти строки выше. $iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors_id'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['doctor_id'] ;
@Maqk проверьте код. я отредактировал его. Теперь нет ошибки для заголовка undefined.
Я приведу пример того, что вы можете сделать: Итак, вы хотите проверить, существуют ли данные, которые вы хотите вставить в каждое из вложенных полей массива title
. Что вы можете сделать, так это:
for ( $k = 0; $k < count( $iva_all_dpt_info[ $weekdays[ $j ] ] ); $k++ ) {
if ( in_array( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'], $hours ) ) {
isset($iva_all_dpt_info[ $weekdays[$j]][$k]['doctor_id'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors_id'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['doctor_id']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors_id'][] = '';
isset($iva_all_dpt_info[ $weekdays[$j]][$k]['doctors'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['doctors']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['doctors'][] = '';
isset($iva_all_dpt_info[ $weekdays[$j]][$k]['department'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['department'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['department']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['department'][] = '';
isset($iva_all_dpt_info[ $weekdays[$j]][$k]['specialty'])?$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['specialty'][] = $iva_all_dpt_info[ $weekdays[$j]][$k]['specialty']:$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['specialty'][] = '';
// if timeformat is 12 hours
if ( $iva_timeformat == 12 ) {
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['hours'][] = date( 'h.i a', strtotime( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'] ) ) . ' - ' . date( 'h.i a', strtotime( $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['endtime'] ) );
} else {
$iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]['hours'][] = $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['starttime'] . ' - ' . $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['endtime'];
}
}
}
Таким образом, это проверит, существует ли значение, которое вы пытаетесь присвоить своему полю, и если нет, оно просто поместит пустую строку.
Какая строка выдает ошибку? Можете ли вы вставить это здесь? Также мое решение - всего лишь 1 пример. Вы должны сделать это для каждой строки.
Ты не правильно понял. удалить полностью часть: $iva_departments[$iva_all_dpt_info[$weekdays[$j]][$k]['title']]['doctors_id'][] =
И все, что на нее похоже, конечно. Это то, что будет делать троичный элемент, проверьте, установлен ли он, и назначьте значения на основе этого. Это как если-то. Я обновил свой ответ, чтобы он соответствовал коду, который вы обновили.
if (isset($iva_departments[ $iva_all_dpt_info[ $weekdays[ $j ] ][ $k ]['title'] ]))
?