java array to string,array_diff数组到错误的字符串转换(array_diff Array to string conversion in error)...

array_diff数组到错误的字符串转换(array_diff Array to string conversion in error)

我想计算不同的两个数组,但我得到错误;

Notice: Array to string conversion in x.php on line 255

而不是计算不同。

码:

$db->where('lisansID', $_POST['licence']);

$mActivation = $db->get('moduleactivation', null, 'modulID');

$aktifler = Array();

$gelenler = Array();

foreach($mActivation as $key=>$val)

{

$aktifler[] = $val;

}

foreach ($_POST['module'] as $key => $value) {

$gelenler[] = $val;

}

echo '

Aktifler: ';

print_r($aktifler);

echo '

';

echo '

 Gelenler:';

print_r($gelenler);

echo '

Fark:';

///line 255:

var_dump(array_diff($aktifler, $gelenler));

I want calculate different two array but i get error;

Notice: Array to string conversion in x.php on line 255

And not calculate different.

Code:

$db->where('lisansID', $_POST['licence']);

$mActivation = $db->get('moduleactivation', null, 'modulID');

$aktifler = Array();

$gelenler = Array();

foreach($mActivation as $key=>$val)

{

$aktifler[] = $val;

}

foreach ($_POST['module'] as $key => $value) {

$gelenler[] = $val;

}

echo '

Aktifler: ';

print_r($aktifler);

echo '

';

echo '

 Gelenler:';

print_r($gelenler);

echo '

Fark:';

///line 255:

var_dump(array_diff($aktifler, $gelenler));

原文:https://stackoverflow.com/questions/31139351

2020-05-27 12:05

满意答案

array_diff只能比较可以转换为的字符串或值(string) 。 但是$aktifler和$gelenler的元素本身就是数组,这就是为什么你得到这个通知(同样,将数组转换为字符串总是会产生字符串“Array”,所以所有数组都将被视为相等)。

注意:

当且仅当(字符串)$ elem1 ===(字符串)$ elem2时,两个元素被认为是相等的。 用文字表示:当字符串表示相同时。

请改用array_udiff ,您可以在其中定义自己的比较函数。

$out = array_udiff($aktifler, $gelenler, function($a, $b) {

// the callback must return 0 for equal values

return intval($a != $b);

});

array_diff can only compare strings or values that can be casted to (string). But the elements of $aktifler and $gelenler are arrays by themselves, that's why you get this notice (also, converting an array to string always results in the string "Array", so all arrays will be treated as equal).

Note:

Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.

Use array_udiff instead, where you can define your own comparison function.

$out = array_udiff($aktifler, $gelenler, function($a, $b) {

// the callback must return 0 for equal values

return intval($a != $b);

});

2015-07-02

相关问答

$list = array ($_POST["array"]);

如果$_POST['array']已经是一个数组, Array($_POST['array'])将产生[一个]数组字符串数组。 如果你写print_r($list) ,你会看到类似这样的东西: Array(0 =>

Array(

0 => "0",

1 => "0",

2 => "0",

3 => "0",

4 => "0",

5 => "0",

6 => "0",

7 => "0...

$制造商引用数组。 尝试: echo $manufacturer['name'];

要么 echo $manufacturer['manufacturer_id];

正如你可以在var_dump上看到的,你的变量$products[$product['product_id']]['manufacturers']是由另外三个数组组成的数组。 因此,循环的每次迭代都会为$制造商变量分配一个数组。 $manufacturer references to an array. Try: echo $ma...

你只需要使用正确的字符串连接。 改变这一行: echo "%24item_array%5B1%5D%5B'product_img'%5D";

对于其中一个选项: echo "%7B%24item_array%5B1%5D%5B'product_img'%5D%7D";

echo ".%24item_array%5B1%5D%5B'product_img'%5D.";

希望能帮助到你。 You just need to use proper string concatenation. Change ...

将{$results[res]}更改为{$results.res}假设您的数组中有“res”键 通过查看您的函数,我猜它应该是: {$results.question_title}

这是解决方案: {foreach from=$results item=results name=results}

{$results.question_title}

{/foreach}

Change {$results[res]} to {$results.res} Assuming you have ...

array_diff()查找数组2中数组1的每个值的精确重复项,忽略键。 1在阵列2中具有副本,例如在键order 。 这就是为什么它没有被列为差异。 这种行为是否最佳或显而易见是值得商榷的,但这就是它的工作原理。 如果将1更改为3 ,则会报告,因为数组2不包含值3 : $array_1 = [

'id' => '42',

'base_id' => '23',

'role_id' => '3',

'title' => 'Man...

从根本上说,这并不是解决方案。 一般而言,有限十进制字符串和有限二进制表示没有确切的等价物。 舍入错误将在此类转换中产生,而不是测试确切的等效性,必须使用像np.allclose这样的构造。 There fundamentally isn't really a solution to this. Generally speaking, a finite decimal string and a finite binary representation have no exact equivalen...

你可以使用var_dump($ result2)或print_r($ result2)来查看fetch中的内容。 您还需要将查询更改为 "SELECT MAX(cart_NO) as cart_no FROM cart"

然后打印结果以了解如何访问cart_no you can use var_dump($result2) or print_r($result2) and see what is in the fetch. also you need to change your query t...

array_diff的文档说明了这一点 将array1与一个或多个其他数组进行比较,并返回array1中任何其他数组中不存在的值。 你的array1是$r ,你的other array是$rr 。 $r基本上相当于 $r = array("1","7","8");

我们可以清楚地看到$r中没有 $rr中没有的值。 ( "1" , "7" , "8"都在$rr 。) 因此,当您尝试访问$rrr[0]时,您将收到E_NOTICE ,因为$rrr为空。 也许你打算颠倒两个论点的顺序 。 $rrr = ...

array_diff只能比较可以转换为的字符串或值(string) 。 但是$aktifler和$gelenler的元素本身就是数组,这就是为什么你得到这个通知(同样,将数组转换为字符串总是会产生字符串“Array”,所以所有数组都将被视为相等)。 见array_diff : 注意: 当且仅当(字符串)$ elem1 ===(字符串)$ elem2时,两个元素被认为是相等的。 用文字表示:当字符串表示相同时。 请改用array_udiff ,您可以在其中定义自己的比较函数。 $out = arra...

为什么不通过输入简单地“grep”? 而且我建议您尝试更精确地匹配以防止将来发生意外...... 看看这个简单的例子: <?php

$folders = [

'.',

'..',

'CommCenterManagerConfig',

'ExternalReferences',

'PosDataUpdates-2016-10-27 094721',

'PosDataUpdates-2016-11-21 104425',

'PosDataUpda...

相关文章

今天遇见一个问题.不知道怎么解决. 如: 自己建立了一个文件read.txt 里面存放这样的 键值

...

以下是ruby-doc.org http://www.ruby-doc.org/core/class

...

命令格式: SET key value 把字符串值value存储到key中。如果存在此key,SE

...

Java String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提

...

我想遍历一个字符串的每一个字符,以前是用string.toCharArray()来转换成一个char[

...

eclipse里报:An internal error occurred during: Buildi

...

无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题。尤其在web应用中常常需要处理中文字符

...

相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志

...

又重新看了下hbase的操作,以前虽说是运行过对Hbase的操作,比如直接的建表,导入数据,或者是使用

...

启动android模拟器时.有时会报The connection to adb is down, an

...

最新问答

如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re

第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型

这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;

问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是

我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar

Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/

你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV

12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar

这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值