Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将变量设置为数组中的值_Php_Arrays - Fatal编程技术网

Php 将变量设置为数组中的值

Php 将变量设置为数组中的值,php,arrays,Php,Arrays,我需要在这样的数组中引用value1、value2或value3: a:3:{i:0;s:4:"value1";i:1;s:5:"value2";i:2;s:4:"value3";} 值1、2或3实际上是ID,我需要找到一种方法将它们设置为一个$item->ID,以便将它们保存为下拉菜单中的选定项。此外,数组是无限的-不一定是a:3(我正在尝试创建可重复的选择框。) 基本上,我需要在数组中每隔三项设置一个变量引用 我想在这方面得到一些帮助。正如您可能知道的,我对php相当陌生 编辑:我想我解释

我需要在这样的数组中引用value1、value2或value3:

a:3:{i:0;s:4:"value1";i:1;s:5:"value2";i:2;s:4:"value3";}
值1、2或3实际上是ID,我需要找到一种方法将它们设置为一个
$item->ID
,以便将它们保存为下拉菜单中的选定项。此外,数组是无限的-不一定是
a:3
(我正在尝试创建可重复的选择框。)

基本上,我需要在数组中每隔三项设置一个变量引用

我想在这方面得到一些帮助。正如您可能知道的,我对php相当陌生

编辑:我想我解释得很糟糕。基本上,为了使我的代码工作,我需要 $meta现在等于$item ID,meta等于a:1:{i:0;s:3:“202”},$item ID等于202。我无法更改该值或它已序列化的事实,因为它来自wordpress,并且我正在访问已经存在的信息

foreach($items as $item) {
echo '<option value="'.$item->ID.'"',$meta == $item->ID ? ' selected="selected"' : '','>'.$item->display_name.'</option>';
                }
foreach($items作为$item){
回显“”。$item->display_name';
}

如果我是你,我会取消序列化为普通数组,然后更改我想要的内容,然后重新序列化

详情如下:

$newArray = unserialize('a:3:{i:0;s:6:"value1";i:1;s:6:"value2";i:2;s:6:"value3";}');
foreach($newArray as something){} //or whatever else you want to do on the normal array.
$serializeArray = serialize ($newArray);

基本上,我认为使用序列化数组是一个错误。

这看起来像是一个序列化数组表示。但其中也有错误。字符串长度
s:4
s:5
错误。虽然手动修复此问题确实有点不妥,但下面是工作代码,我已经设置了
s:6
,因为字符串有6个字符:

$a = unserialize('a:3:{i:0;s:6:"value1";i:1;s:6:"value2";i:2;s:6:"value3";}');
var_dump($a);
输出:

array(3) {
  [0] =>
  string(6) "value1"
  [1] =>
  string(6) "value2"
  [2] =>
  string(6) "value3"
}
现在你有了一个数组。但问题是,你怎么能得到那根弦?你到底在干什么

如果您正在搜索如何在php中定义数组,请使用以下示例:

$array = array ('value1', 'value2', 'value3');

还有其他定义数组的方法。请

到目前为止,您尝试过的是什么?如果您实际将其作为一个数组,那么
var\u dump
/
print\u r
的输出比
serialize
的输出可读性更强。顺便问一句,这是您的“数组”,序列化的,还是仅仅是实际数组的表示?您的问题是使用这个数组表示还是只使用要设置哪些元素的算法?如果显示初始数组和预期结果,也会有所帮助。这就是Mysql数据库中的内容。可能只是一个算法问题。我实际上不需要显示它,只是在值1、2和3等位置捕获项目的值。我无能为力。它来自Wordpress管理页面。我没有给它贴上wordpress的标签,因为我认为这更像是一个php问题,我理解,但你应该仍然能够按照你的意愿操作它。谢谢,我正在尝试。但鉴于我甚至无法理解数组,这是一个相当高的要求;)我试过:$newArray=unserialize($meta);foreach($newArray as$key=>$value){return$value;}但是我得到了null。你能给我更多的信息吗?你到底想实现什么?这是我的错。我想让解释更容易些。实际上,我试图在下拉选择框中引用一个id,并将其设置为另一个变量,这样它将保存到db中。下面是我最终想要输出的内容:a:1:{I:0;s:3:“202”}基本上,我需要获取202(或它是什么)并使它==到202 som,它将保持选中状态。
$array = array ('value1', 'value2', 'value3');