Объяснение:Iterate PHP массива и проверки данных
Использование PHP, у меня есть форма, которая позволяет пользователям создавать исходящие заказы.
Пользователь может выбрать, какой элемент инвентаря они хотели бы отправить в определенном поле # конкретному клиенту.
Я хотел бы добавить валидацию в эту форму, потому что пользователь не должен выбирать двух разных клиентов для одного и того же блока #.
Пример:
Person A -> Item A -> Box 1
Person A -> Item B -> Box 1
Person B -> Item C -> Box 2
Person B -> Item D -> Box 1 //!! <- This should not be possible because
Person C -> Item E -> Box 3 //Person A is already using Box #1.
Когда форма отправлена я создаю массив так:
$data = (object) array
(
array (
"customer" => "Person A",
"item" => "Item A",
"box" => "Box 1"
),
array (
"customer" => "Person A",
"item" => "Item B",
"box" => "Box 1"
),
array (
"customer" => "Person B",
"item" => "Item C",
"box" => "Box 2"
),
array (
"customer" => "Person B",
"item" => "Item D",
"box" => "Box 1"
),
array (
"customer" => "Person C",
"item" => "Item E",
"box" => "Box 3"
)
);
Вопрос:
Как я могу идти о переборе массива чтобы убедиться, что каждый человек имеет свой собственный ящик №?
Это то, что я пытаюсь, но я застревать:
$temp_arr = (object) array();
foreach($data as $row){
if(!property_exists($temp_arr, $row['customer'])){
$temp_arr->$row['customer'] = array();
};
//Load the boxes into the correct customer array
if(in_array($row['box'], $temp_arr->$row['customer'])){
//Duplicate
} else {
array_push($temp_arr->$row['customer'], $row['box']);
}
}
так что если у человека есть предмет, но используя принятые коробки # что элемент должен идти к пользователю с отмеченной коробкой # ? – ksealey
Если поле уже выполнено, проверка завершается, и пользователь предупреждается о том, что они не могут использовать 2 клиента для одного и того же блока # – osbt