相关疑难解决方法(0)

PHP等式(== double equals)和identity(=== triple equals)比较运算符有何不同?

==和之间有什么区别===

  • 松散的==比较究竟是如何运作的?
  • 严格的===比较究竟是如何运作的?

什么是有用的例子?

php comparison equality operators identity-operator

483
推荐指数
9
解决办法
29万
查看次数

isset()和array_key_exists()之间有什么区别?

以下两个函数调用如何比较:

isset($a['key'])

array_key_exists('key', $a)
Run Code Online (Sandbox Code Playgroud)

php

395
推荐指数
6
解决办法
12万
查看次数

按值获取数组中元素的索引

我在PHP中有这个数组:

array(
    [0] => array( 'username' => 'user1' )
    [1] => array( 'username' => 'user2' )
)
Run Code Online (Sandbox Code Playgroud)

如果我有"用户名"字符串,我怎样才能将索引值作为数字?

例如,如果我有'user1',我怎么能得到0?

php

28
推荐指数
3
解决办法
8万
查看次数

使用array_search和array_column检查多维数组中是否存在值,而不返回Array [0]的值

我需要检查多维数组中是否存在值.我在StackoverflowPHP.NET上找到了这个例子我喜欢它因为它是一个优雅而紧凑的解决方案,但我注意到一个奇怪的行为:

$userdb=Array
(
(0) => Array
    (
        (uid) => '100',
        (name) => 'Sandra Shush',
        (pic_square) => 'urlof100'
    ),

(1) => Array
    (
        (uid) => '5465',
        (name) => 'Stefanie Mcmohn',
        (pic_square) => 'urlof100'
    ),

(2) => Array
    (
        (uid) => '40489',
        (name) => 'Michael',
        (pic_square) => 'urlof40489'
    )
);



if(array_search(100, array_column($userdb, 'uid'))) {
    echo "FOUND";
}
Run Code Online (Sandbox Code Playgroud)

如果检查FIRST数组(Array [0])的任何值是否存在,则IF语句不返回任何值.它确实与其他数组的值一起使用.100首先尝试,然后尝试40489(或尝试使用"名称"或"pic_square").

php arrays multidimensional-array

24
推荐指数
1
解决办法
5万
查看次数

PHP:函数'count'的复杂性[即O(1),O(n)]是多少?

count()数组函数的Big-O时间复杂度是多少?

$x = array(1,2,3);
echo count($x); // how many operation does it takes to count the elements 
                // of the array? is it 3, or is it 1
Run Code Online (Sandbox Code Playgroud)

php

14
推荐指数
2
解决办法
3072
查看次数

在嵌套数组中搜索值

我有一个数组如下

array(2) {
  ["operator"] => array(2) {
    ["qty"] => int(2)
    ["id"] => int(251)
  }
  ["accessory209"] => array(2) {
    ["qty"] => int(1)
    ["id"] => int(209)
  }
  ["accessory211"] => array(2) {
    ["qty"] => int(1)
    ["id"] => int(211)
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图找到一种方法来验证数组中存在的id值并返回bool.我试图找出一种不需要创建循环的快速方法.使用in_array函数不起作用,我也读到它很慢.

在php手册中,有人建议使用flip_array()然后使用isset(),但我不能让它适用于2-d数组.

做某事

if($array['accessory']['id'] == 211)
Run Code Online (Sandbox Code Playgroud)

也适合我,但我需要匹配所有包含附件的钥匙 - 不知道如何做到这一点

无论如何,我在旋转,并可以使用一些帮助.这看起来应该很容易.谢谢.

php multidimensional-array

5
推荐指数
1
解决办法
1万
查看次数

如何检查带有键的多维数组中是否存在值?

我有一个看起来像这样的数组:

$array = array(
   array('name' => 'number1', 'number' => '0612345675'),
   array('name' => 'number2', 'number' => '0634345675'),
   array('name' => 'number3', 'number' => '0634378675')
);
Run Code Online (Sandbox Code Playgroud)

现在我有这个号码:0634345675
如何检查数组中是否存在该数字$array

我尝试这样做:

if(!in_array('0634345675', $array)){
   // insert into DB
}
Run Code Online (Sandbox Code Playgroud)

但这会不断添加多个相同的行。
有谁知道如何检查这个号码是否存在$array

完整代码:

foreach($DN as $number){ // $DN got ['0634345675', '0632545675', '0614342375']
    if(!in_array($number, $array)){
       // insert into DB
    }
}
Run Code Online (Sandbox Code Playgroud)

php arrays

3
推荐指数
1
解决办法
2049
查看次数

PHP最快的方法来检查数组中的值是否存在

我有这个数组:

array [?
      0 => array:5 [?
        "id" => 1
        "user_id" => 15
        "parent_campaign_id" => 69464
        "child_campaign_id" => 69464
        "cpm" => "1.00"
      ]
      1 => array:5 [?
        "id" => 2
        "user_id" => 15
        "parent_campaign_id" => 69464
        "child_campaign_id" => 396331
        "cpm" => "2.00"
      ]
      2 => array:5 [?
        "id" => 3
        "user_id" => 15
        "parent_campaign_id" => 69464
        "child_campaign_id" => 398032
        "cpm" => "3.00"
      ]
    ]
Run Code Online (Sandbox Code Playgroud)

如何知道396331该数组中是否存在数字,密钥应该是child_campaign_id.

我试过,in_array()但它似乎无法正常工作,因为keys这个数组是不同的.

对你的帮助表示感谢.

php arrays

0
推荐指数
1
解决办法
1719
查看次数