Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 - Fatal编程技术网

更新数组中的php变量

更新数组中的php变量,php,Php,我不知道该如何描述这个问题,如果这个问题的标题不正确,那么很抱歉 我有一个包含一堆元数据库的文件,但我正试图减少重复条目。所以我要做的是创建一个变量,其中包含一个数组,该数组创建了metabox,然后在稍后调用该数组时尝试更新该数组中的一个变量 下面的例子中,我试图更新$title,但不知道如何实现这一点,也不知道谷歌的解决方案叫什么 <?php $metabox = array( 'name' => "{$title}", 'id' =>

我不知道该如何描述这个问题,如果这个问题的标题不正确,那么很抱歉

我有一个包含一堆元数据库的文件,但我正试图减少重复条目。所以我要做的是创建一个变量,其中包含一个数组,该数组创建了metabox,然后在稍后调用该数组时尝试更新该数组中的一个变量

下面的例子中,我试图更新
$title
,但不知道如何实现这一点,也不知道谷歌的解决方案叫什么

<?php
$metabox = array(
        'name' => "{$title}",
        'id'   => "column_content",
        'type' => 'wysiwyg',
        'raw'  => false,
        'options' => array(
            'textarea_rows' => 3,
            'teeny'         => true,
            'media_buttons' => false,
        ),
    );

$meta_boxes[] = array(
    'id'         => 'page_builder', 
    'title'      => 'Metabox Example',
    'fields'     => array(
        // Output the above array here:
        $metabox,

     ),
);

其实很简单,只需将其添加到代码中即可

$meta_boxes[$i]['title'] = 'NEW TITLE';

你可以这样做

foreach ($metabox as $box){
    $box['title'] = 'yourValue';
    //here you can change the values that you want
}

如果我理解正确,您可以访问$title值('name'字段),如下所示:

<?php
$metabox = array(
        'name' => "initial title",
        'id'   => "column_content",
        'type' => 'wysiwyg',
        'raw'  => false,
        'options' => array(
            'textarea_rows' => 3,
            'teeny'         => true,
            'media_buttons' => false,
        ),
    );

$metaboxFields = array();

//this is an example for 5 metaboxes.
for ($i = 1; $i <= 5; $i++) {
    $metaboxFields['metabox'.$i] = $metabox;
}   


$meta_boxes = array(
    'id'         => 'page_builder', 
    'title'      => 'Metabox Example',
    'fields'     => $metaboxFields,
);

$newTitleForBox1 = 'NEW TITLE';
$meta_boxes['fields']['metabox1']["name"] = $newTitleForBox1;

你的意思是什么“是否更新
$title
?是什么阻止你更改静态数组中的静态内容?@NicoHaase他需要动态更新它这对我来说很奇怪-代码中没有任何动态内容
我有一个包含一堆元盒的文件,但我正在尝试减少重复项
单个元盒在文件中多次重复我不想在下面的meta_Box[]数组中重复这些地方。因此,我们希望创建一次单个字段并更新一些简单字段@Nicohaase如果需要将标题拉入字段并填充到字段中,请使用循环填充。这不会起作用,因为数组上的
foreach
的默认行为是复制数组。我确实了解数组在@DarkBee下的工作方式,但我仍然不明白为什么需要[$I]。这还会从数组中更新标题吗?我觉得这会更新meta_box[]array()之外的$title,否?因为数组中有多个
metabox
?您需要针对要更新其属性的右侧
metabox
title@Aaron据我所知,你有一个多维数组,这就是为什么我添加了[$I],所以你在这里对每个元素的每个标题进行排序。你能进一步解释一下这一行是如何更新的吗?当然,你需要声明$newTitle。但是,这一行代码将用$newTitle变量的值替换“name”字段的当前值“{$title}”,之后该如何处理该变量呢?如何使用它来运行问题中给出的替换?我发现我在回答中犯了一个错误,没有像OP所问的那样设置标题。我把答案改了,这样就行了。谢谢你指出这一点。据我所知,应该有某种“模板数组”——这就是为什么有一个值
{$title}
,它应该被当前数组元素
title
的内容替换
<?php
$metabox = array(
        'name' => "initial title",
        'id'   => "column_content",
        'type' => 'wysiwyg',
        'raw'  => false,
        'options' => array(
            'textarea_rows' => 3,
            'teeny'         => true,
            'media_buttons' => false,
        ),
    );

$metaboxFields = array();

//this is an example for 5 metaboxes.
for ($i = 1; $i <= 5; $i++) {
    $metaboxFields['metabox'.$i] = $metabox;
}   


$meta_boxes = array(
    'id'         => 'page_builder', 
    'title'      => 'Metabox Example',
    'fields'     => $metaboxFields,
);

$newTitleForBox1 = 'NEW TITLE';
$meta_boxes['fields']['metabox1']["name"] = $newTitleForBox1;