相关疑难解决方法(0)

PHPUnit:断言两个数组相等,但元素的顺序并不重要

当数组中元素的顺序不重要或甚至可能发生变化时,断言两个对象数组相等的好方法是什么?

php phpunit unit-testing assert

121
推荐指数
11
解决办法
8万
查看次数

检查空数组:count vs empty

关于' 如何判断PHP数组是否为空 '的这个问题让我想到了这个问题

是否有理由count应该使用而不是empty在确定数组是否为空时?

我个人的想法是,如果2应该使用空数组的情况是等价的,empty因为它给出了布尔问题的布尔答案.从上面链接的问题来看,这似乎count($var) == 0是流行的方法.对我而言,虽然技术上正确,但毫无意义.例如Q:$ var,你是空的吗?答:7.嗯...

有没有理由我应该使用count == 0或仅仅是个人品味的问题?

正如其他人在对现在删除的答案的评论中指出的那样,count对大型数组会有性能影响,因为它必须计算所有元素,而empty一旦知道它不为空就可以停止.那么,如果他们在这种情况下给出相同的结果,但count可能效率低下,为什么我们会使用count($var) == 0

php arrays performance standards semantics

95
推荐指数
6
解决办法
7万
查看次数

为什么array_diff()给Array提供字符串转换错误?

我得到以下行的数组到字符串转换错误:

$diff = array_diff($stockist, $arr);
Run Code Online (Sandbox Code Playgroud)

$arr是一个从JSON文件解码的数组.使用该is_array()函数,我能够验证两个参数都是数组.有人能指出我的问题

$stockist = array();
while (!feof($file_handle)) {

    $line_of_text = fgetcsv($file_handle);
    $query = "SELECT * FROM reorderchart WHERE medicine = '"
        . trim($line_of_text[3])
        . "' ORDER BY medicine";
    $result = mysql_query($query);

    if (trim($line_of_text[2]) - trim($line_of_text[1]) <= 0) {

        while ($row = mysql_fetch_array($result)) {

            $file = "results.json";
            $arr = json_decode(file_get_contents($file),true);
            $pharmacy = trim($row['Medicine']);

            if (isset($stockist[$pharmacy])) {

                $medicine = $stockist[$pharmacy];
                $medicine[] = trim($row['Stockist']);
                $stockist[$pharmacy] = $medicine;

            } else {

                $medicine = array();
                $medicine[] = …
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array array-difference

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

检查两个数组是否具有相同的值

[2,5,3]    

[5,2,3]
Run Code Online (Sandbox Code Playgroud)

它们是相同的,因为它们具有相同的值,但不是以相同的顺序.我可以在不使用带有in_array()的foreach循环的情况下找到答案吗?我认为这不会有效率.

php arrays

36
推荐指数
6
解决办法
4万
查看次数

PHP:内置函数,用于检查两个Array值是否相等(忽略顺序)

有没有PHP的内置函数来检查两个数组是否包含相同的值(顺序不重要?).

例如,我想要一个函数,它为以下两个输入返回true:

array('4','5','2') 
array('2','4','5')
Run Code Online (Sandbox Code Playgroud)

编辑:我可以对两个阵列进行排序并对它们进行比较,但由于我是一个懒惰的家伙,我仍然更喜欢我可以拔出并使用的单线程.

php arrays

18
推荐指数
2
解决办法
2万
查看次数

比较PHP中的多维数组

如何在php中比较多维数组?有一个简单的方法吗?

php arrays compare multidimensional-array

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

PHP检查数组是否相同?

我正在寻找一种方法来检查两个阵列是否相同,例如

  $a = array(
    '1' => 12,
    '3' => 14,
    '6' => 11
);
$b = array(
    '1' => 12,
    '3' => 14,
    '6' => 11
);
Run Code Online (Sandbox Code Playgroud)

这两个是相同的,但如果单个值被更改,它将返回false,我知道我可以编写一个函数,但是有一个已经构建了吗?

php

5
推荐指数
2
解决办法
7456
查看次数

比较SimpleXml对象

我想比较两个SimpleXML Objects.

一个是从DB获取的,另一个是从XML API获取的,但结果始终为false,无论XML实际上是否相同.

我究竟做错了什么?

$objDbXml   = simplexml_load_string($objReisen->xml); // XML from DB           
$objApiXml  = simplexml_load_string(getXMlFromApi()); // XML from Api
var_dump($objDbXml->Reise->Z_LEISTUNGEN == $objApiXml->Reise->Z_LEISTUNGEN);
// Result is always false
Run Code Online (Sandbox Code Playgroud)

var_dump的输出($ objDbXml-> Reise-> Z_LEISTUNGEN,$ objApiXml-> Reise-> Z_LEISTUNGEN):

object(SimpleXMLElement) #69 (1) {
    ["TextLine"]= > array(11) {
        [0] = > string(43) "Erlebnisreise mit höchstens 13 Teilnehmern" 
        [1] = > string(39) "Durchführungsgarantie ab 4 Teilnehmern" 
        [2] = > string(127) "Linienflug mit South African Airways von Frankfurt a.M. nach Kapstadt und zurück von Port Elizabeth …
Run Code Online (Sandbox Code Playgroud)

php simplexml

4
推荐指数
1
解决办法
2657
查看次数

php中的==和=== WRT数组之间的区别?

我正在阅读关于php的内容,它说,

==是平等使得$a == $btrue如果$a$b具有相同的元件.

===是身份使得$a === $btrue如果$a$b具有相同的元件,用相同的类型,以相同的顺序.

所以,我想我会尝试看看自己的差异并用这个小脚本写下来:

$a = array(1, 2, 3);
$b = array(2, 3, 1);
if ($a==$b) {echo "yeehaw!";} else {echo "nope";}
if ($a===$b) {echo "yup";} else {echo "nope";}
Run Code Online (Sandbox Code Playgroud)

我的想法是,两个数组相等并不需要相同的顺序.然而,当我跑这个时,我得到了"不"和"不".

有什么不同?

php arrays identity equality

3
推荐指数
2
解决办法
179
查看次数

PHP 检测 SQL 注入尝试

我的代码已经是安全的,在 SQL 查询中使用参数,但是,我想检测是否有人尝试将某些内容注入到提交表单中。

我找到了 Snort,但我需要 PHP 脚本级别的东西,而不是整个网络。

这是一个包含学生个人信息的网站,因此,我们将警告(甚至采取行动)任何尝试攻击的人。

php mysql sql sql-injection

2
推荐指数
1
解决办法
5228
查看次数

如何检查两个数组是否包含相同的值?

我有两个数组,我必须将它们相互比较:

\n\n
$a = array('BRANCH','ADDRESS','MOBILE','NAME');\n$b = array('BRANCH','ADDRESS','MOBILE','NAME');\n\n$a == $b \xe2\x86\x92 true\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是当值的顺序​​不同时,这种比较不起作用:

\n\n
$a = array('BRANCH','ADDRESS','MOBILE','NAME');\n$b = array('NAME','BRANCH','MOBILE','ADDRESS');\n\n$a == $b \xe2\x86\x92 false\n
Run Code Online (Sandbox Code Playgroud)\n\n

我如何比较这两个数组,看看它们是否包含相同的值,无论它们的顺序如何?

\n

php arrays

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