在PHP中处理二维数组时,经常需要根据特定条件提取数据。例如,你可能需要从包含多个项目信息的二维数组中,根据项目的ID提取对应的标题或其他字段的值。
假设你有一个包含项目信息的二维数组:
$items = [ [ "id" => 1, "view" => 2, 'category_id' => 2, 'title' => "项目一", "model" => 12, 'desc' => "项目一描述", ], [ "id" => 123, "view" => 2, 'category_id' => 1, 'title' => "项目二", "model" => 101, 'desc' => "项目二描述", ] ];
你需要根据ID提取特定项目的信息。可以使用以下函数实现:
function getItemValue(array $items, int $itemId, string $key): mixed { foreach ($items as $item) { if ($item['id'] === $itemId) { return $item[$key] ?? null; // 使用空值合并运算符处理不存在的键 } } return null; // 如果未找到匹配的ID,则返回null } // 获取ID为123的项目的标题 $title = getItemValue($items, 123, 'title'); echo $title; // 输出:项目二 // 获取ID为1的项目的描述 $description = getItemValue($items, 1, 'desc'); echo $description; // 输出:项目一描述 // 获取不存在的键值,返回null $model = getItemValue($items, 123, 'nonexistent_key'); var_dump($model); // 输出:NULL
这个函数 getItemValue
接受数组 $items
、目标ID $itemId
和目标键 $key
作为参数,并返回对应的值。它使用了空值合并运算符 ??
来处理可能不存在的键,并返回 null
如果未找到匹配的ID。 这种方法清晰简洁,易于理解和维护。