You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用array_map()提取数组中指定的ISBN与价格键值对

用array_map()提取多维数组指定键值对的解决方案

嘿,作为PHP新手能自己尝试解决问题已经超棒啦!针对你想用array_map()提取多维数组里的isbn和price键值对的需求,我来给你讲清楚具体怎么实现~

核心思路

array_map()的作用是遍历数组中的每个元素,对每个元素执行你定义的处理逻辑,最后把所有处理后的结果整合成一个新数组返回。我们只需要给每个子数组返回一个仅包含isbn和price的新数组就行。

完整代码示例

首先先把你的原始数组整理成标准的PHP数组格式:

$books = [
    ["isbn" => "9789737953766", "author" => "Ágoston Katalin, Domokos József, Márton Lőrinc", "title" => "Érzékelők és jelátalakítók", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2007-02-01", "price" => 15.58],
    ["isbn" => "9789731970066", "author" => "Tőkés Gyöngyvér", "title" => "Szakma vagy hivatás? ", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2008-07-25", "price" => 32.3],
    ["isbn" => "9789738598546", "author" => "Nagy László (szerk.)", "title" => "Tanulmányok a természettudományok tárgyköréből", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2002-01-01", "price" => 13],
    ["isbn" => "9789737953612", "author" => "Oláh-Gál Róbert", "title" => "Az informatika alapjai közgazdász- és mérnökhallgatóknak", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2007-01-01", "price" => 15.58],
    ["isbn" => "9789737953797", "author" => "Józon Mónika", "title" => "Általános jogelméleti és polgári jogi ismeretek", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2007-01-30", "price" => 36.72],
    ["isbn" => "9789737953834", "author" => "Kakucs András", "title" => "Áramlástan", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2007-10-01", "price" => 34.64],
    ["isbn" => "9789737953827", "author" => "Szilágyi Györgyi, Flóra Gábor, Ari Gyula", "title" => "Bihar megye gazdasági-társadalmi fejlődése", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2007-11-01", "price" => 38.48],
    ["isbn" => "9789737953803", "author" => "Majdik Kornélia, Tonk Szende-Ágnes", "title" => "Biokémiai alkalmazások", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2007-06-01", "price" => 19.46],
    ["isbn" => "9789737953902", "author" => "Urák István", "title" => "Date despre arahnofauna din bazinul superior al Oltului", "pub_name" => "Scientia Kiadó, Kolozsvár", "pub_date" => "2008-01-01", "price" => 28.78]
];

然后用array_map()配合匿名函数处理:

$newArray = array_map(function($item) {
    // 对每个子数组,只返回isbn和price键值对
    return [
        'isbn' => $item['isbn'],
        'price' => $item['price']
    ];
}, $books);

额外优化(可选)

如果担心某些子数组可能缺失isbn或price键(虽然你的示例里都存在),可以用PHP的空合并运算符??来避免报错,给缺失的键设置默认值:

$newArray = array_map(function($item) {
    return [
        'isbn' => $item['isbn'] ?? null,
        'price' => $item['price'] ?? null
    ];
}, $books);

这样处理后,$newArray就完全符合你期望的格式啦——每个元素都是包含isbn和price的子数组,而不是一维数组。

内容的提问来源于stack exchange,提问作者Galterius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:07:29