【发布时间】:2017-10-13 19:51:28
【问题描述】:
我有两个数组,一个是自定义的。
$fields = array( "first_name" => "test", "last_name" => "Test", "phone" =>"111-111-1111, "id" => 1234");
另一个是从 csv 文件的第一行中获取的。这将返回一个像这样的数组
$headers = array ("fname" => "test", "last_name" => "Test", "phone"=> "123-123-1234");
然后,如果 $headers 数组中的某个键与 $fields 数组中的任何键都不匹配,我想返回一个错误。如果 $fields 数组中的键并非全部出现在 $headers 数组中,那也没关系。
例如上面的两个数组应该返回一个错误,因为键 fname 在 $fields 数组中不存在,而不是因为 id 在 $headers 数组中丢失。
我尝试使用多个循环的 if 语句进行试验,但我正在寻找一种更好的方法,我认为我可以操纵 array_diff 方法,但没有运气。
$dif_keys = array_diff($fields, $headers);
【问题讨论】:
-
如果只关心按键,则需要
array_diff_key()。 -
如果 $headers 数组中的键与 $fields 数组中的任何键都不匹配,我想返回一个错误。 但是
phone和last_name两者都在,所以你需要更好地解释标准。 -
@AbraCadaver 如果 $headers 数组中有一个键与 $fields 数组中的任何键都不匹配,我想返回一个错误。我更新了问题,所以它更清楚
-
这是我的想法,所以答案实现了。
标签: php arrays validation