Как я могу показать N/A только между элементами, которые имеют некоторые значения, отличные от N/A, и заменить N/A нулем во всех остальных случаях?Удалить указанное значение от начала и до конца массива
Количество ключей различное, и каждая подматрица может иметь ~ 300 ключей.
Пример:
Before After
N/A -> null
N/A -> null
10 -> 10
N/A -> N/A
20 -> 20
N/A -> null
N/A -> null
Любые идеи, как написать функцию, которая может это сделать?
Вот мой код:
$dataCount = count($data) - 1;
$nextNotEmpty = null;
foreach ($data as $k => $element) {
$next = isset($data[$k + 1]) ? $data[$k + 1] : null;
if ($next) {
if ($nextNotEmpty) {
foreach ($nextNotEmpty as $id => $val) {
if ($val === 'N/A') {
$element[$k][$id] = '';
}
}
} else {
$nextNotEmpty = $next;
}
}
if ($k === 0 || $k === $dataCount) {
foreach ($element as $key => $value) {
if ($value === 'N/A') {
$data[$k][$key] = '';
}
}
}
}
//source array:
Array
(
[0] => Array
(
[key1] => N/A
[key2] => 20
[key3] => N/A
)
[1] => Array
(
[key1] => 10
[key2] => 30
[key3] => N/A
)
[2] => Array
(
[key1] => N/A
[key2] => 40
[key3] => N/A
)
[3] => Array
(
[key1] => 30
[key2] => N/A
[key3] => N/A
)
[4] => Array
(
[key1] => N/A
[key2] => N/A
[key3] => N/A
)
//desired output array:
Array
(
[0] => Array
(
[key1] => null
[key2] => 20
[key3] => null
)
[1] => Array
(
[key1] => 10
[key2] => 30
[key3] => null
)
[2] => Array
(
[key1] => N/A
[key2] => 40
[key3] => null
)
[3] => Array
(
[key1] => 30
[key2] => null
[key3] => null
)
[4] => Array
(
[key1] => null
[key2] => null
[key3] => null
)
Вы что-то пробовали? – Rizier123
Да, я добавил код – gustas