首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按变量的多维数组中的PHP array_search

按变量的多维数组中的PHP array_search
EN

Stack Overflow用户
提问于 2018-07-18 04:42:31
回答 2查看 168关注 0票数 1

我有一个数组,我想在其中过滤出有关OrderId的所有信息。因此,我想通过一个包含我的OrderId的变量来array_search我的数组。这样,我就可以获得数组密钥,然后使用array_slice对数组进行切片。

代码语言:javascript
复制
Array
( 
    [Order] => Array
        ( 
            [0] => Array
                ( 
                    [OrderId] => 4832413060 
                    [DateTimeCustomer] => 2018-07-17T12:55:07.000+02:00 
                    [DateTimeDropShipper] => 2018-07-17T12:55:07.000+02:00 
                    [CustomerDetails] => Array 
                        ( 
                            [ShipmentDetails] => Array 
                                ( 
                                    [SalutationCode] => 01 
                                    [Firstname] => name 
                                    [Surname] => sirname 
                                    [Streetname] => streetname 
                                    [Housenumber] => number 
                                    [ZipCode] => zipcode 
                                    [City] => city 
                                    [CountryCode] => countryCode
                                    [Email] => email 
                                ) 
                            [BillingDetails] => Array 
                                ( 
                                    [SalutationCode] => 01 
                                    [Firstname] => name
                                    [Surname] => sirname
                                    [Streetname] => streetname 
                                            [Housenumber] => number 
                                    [ZipCode] => zipcode 
                                    [City] => city 
                                    [CountryCode] => countryCode 
                                    [Email] => email
                                ) 
                        ) 
                    [OrderItems] => Array
                        ( 
                            [OrderItem] => Array 
                                ( 
                                    [OrderItemId] => orderitemid 
                                    [OfferReference] => Array 
                                        ( 

                                        ) 
                                    [EAN] => ean 
                                    [Title] => title 
                                    [Quantity] => 1 
                                    [OfferPrice] => 14.95 
                                    [TransactionFee] => 3.24 
                                    [LatestDeliveryDate] => 2018-07-18+02:00 
                                )
                        )
                ) 
            [1] => Array
                ( 
                    [OrderId] => 4832413070
                    [DateTimeCustomer] => 2018-07-17T12:55:07.000+02:00 
                    [DateTimeDropShipper] => 2018-07-17T12:55:07.000+02:00 
                    [CustomerDetails] => Array 
                        ( 
                            [ShipmentDetails] => Array 
                                ( 
                                    [SalutationCode] => 01 
                                    [Firstname] => name 
                                    [Surname] => sirname 
                                    [Streetname] => streetname 
                                    [Housenumber] => number 
                                    [ZipCode] => zipcode 
                                    [City] => city 
                                    [CountryCode] => countryCode
                                    [Email] => email 
                                ) 
                            [BillingDetails] => Array 
                                ( 
                                    [SalutationCode] => 01 
                                    [Firstname] => name
                                    [Surname] => sirname
                                    [Streetname] => streetname 
                                    [Housenumber] => number 
                                    [ZipCode] => zipcode 
                                    [City] => city 
                                    [CountryCode] => countryCode 
                                    [Email] => email
                                ) 
                        ) 
                    [OrderItems] => Array
                        ( 
                            [OrderItem] => Array 
                                ( 
                                    [OrderItemId] => orderitemid 
                                    [OfferReference] => Array 
                                        ( 

                                        ) 
                                    [EAN] => ean 
                                    [Title] => title 
                                    [Quantity] => 1 
                                    [OfferPrice] => 14.95 
                                    [TransactionFee] => 3.24 
                                    [LatestDeliveryDate] => 2018-07-18+02:00 
                                )
                        )
                ) 

我尝试的代码如下:

代码语言:javascript
复制
foreach ($items as $item) {
$key = array_search($item, $array1);

$item与OrderId相同。

我尝试了互联网上的许多不同的例子,但不幸的是,似乎没有一个对我有效。

EN

回答 2

Stack Overflow用户

发布于 2018-07-18 04:58:38

array_search()不适用于多维数组。使用array_filter()

代码语言:javascript
复制
foreach ($items as $item) {
    $found = array_filter($array, function($element) use($item) {
        return $element['OrderId'] == $item;
    }
    // $found now contains all the elements in the original array for $item
    ...
}
票数 0
EN

Stack Overflow用户

发布于 2018-07-18 05:04:25

我认为可以使用array_column将数组与orderid关联起来作为键,这样就可以很容易地找到orderid。

但这假设您在数组中只有唯一的orderid。

代码语言:javascript
复制
$find = 4832413060;
$arr = array_column($arr, NULL, 'orderid');

$findOrder = $arr[$find];

Var_dump($findOrder);

我制作了一个小数组来演示代码。

https://3v4l.org/jEus3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51389897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档