我有两个数组:
$a =array(
'standard' => (object) array( 'id' => 'standard', 'title' => 'AustPost Standard' ),
'registered' => (object) array( 'id' => 'registered', 'title' => 'AustPost Registered' ),
'insured' => (object) array( 'id' => 'insured', 'title' => 'AustPost Insured' ),
'express' => (object) array( 'id' => 'express', 'title' => 'AustPost Express' ),
'satchexp' => (object) array( 'id' => 'satchexp', 'title' => 'AustPost Satchel Express' ),
'satchreg' => (object) array( 'id' => 'satchreg', 'title' => 'AustPost Satchel Registered' ),
'satchpla' => (object) array( 'id' => 'satchpla', 'title' => 'AustPost Satchel Platnium' )
);
和
$b = array( 'standard', 'sea', 'air', 'satchexp', 'satchreg', 'satchpla' )
如何创建一个新数组$ c,其中只有数组$ a中的元素出现在数组$ b中?
答案 0 :(得分:5)
您可以通过键或值来执行此操作。 在$ a的情况下你有(标准','海','空'......)作为键,但在$ b中这些单词实际上是值,键是(0,1,2 ......)
你可以轻松地翻转数组$ b来制作单词数组键。然后你可以按键交叉数组
$c = array_intersect_key($a, array_flip($b));