MySql понимает только SQL-запрос, а MySql не поддерживает прямую вставку массивов php. Поэтому преобразуйте массив php в оператор MySql sql, но одновременно можно вставлять одну строку.
В этом коде ваш $ output_array может быть
Array
(
[101] => Array
(
[name] => John
[Check In] => 2.00
[checkout] => 5.00
)
[102] => Array
(
[name] => Kings
[Check In] => 1.00
[checkout] => 3.00
)
[103] => Array
(
[name] => Manick
[Check In] => 3.30
[checkout] => 4.40
)
[104] => Array
(
[name] => John
[Check In] => 1.50
[checkout] => 3.30
)
)
Он имеет значения подмассива.Процесс проверки дубликатов может быть реализован только путем написания ручного кода и не использовать "in_array ()", потому что "in_array ()" не проверяет повторяющиеся значения в подмассиве.
Попробуйте этот код ..
$temp_array = [];
foreach($output_array as $uid => $data)
{
echo
'
<tr>
<td>'.$uid.'</td>
<td>'.(isset($data["name"]) && !empty($data["name"]) ? $data["name"] : "N/A").'</td>
<td>'.(isset($data['Check In']) && !empty($data['Check In']) ? $data['Check In'] : "N/A").'</td>
<td>'.(isset($data["checkout"]) && !empty($data["checkout"]) ? $data["checkout"] : "N/A").'</td>
</tr>
';
if (!check_duplicate($data['name'], $temp_array))
{
$array_push = ['id' => $uid, 'name' => $data['name'], 'Time' => $data['Check In']];
$sql = "INSERT INTO attendance (id, name, time) VALUES ('".implode("','",$array_push)."')";
// Execute Sql Query
mysql_query($sql);
// Store Array values in Temporary Array for checking duplicates
array_push($temp_array, $array_push);
}
}
function check_duplicate($key, $arr)
{
foreach($arr as $arr_1)
{
if(in_array($key, $arr_1))
return TRUE;
}
return FALSE;
}
В этом примере проверяется, что у «имени» есть повторяющиеся значения, и вставляется значение времени «проверки» в значение поля «Время»