相关疑难解决方法(0)

满足条件时如何从数组中删除元素

给定以下数组:

Array
(
    [0] => Array
        (
            [id_contract] => 1
            [contract_months] => 5
            [months_with_expenses] => 1
        )

    [1] => Array
        (
            [id_contract] => 2
            [contract_months] => 12
            [months_with_expenses] => 0
        )

    [2] => Array
        (
            [id_contract] => 3
            [contract_months] => 1
            [months_with_expenses] => 1
        )

)
Run Code Online (Sandbox Code Playgroud)

如何从数组中删除键“contract_months”与键“month_with_expenses”不匹配的所有元素?

我正在使用 PHP。

php arrays multidimensional-array

6
推荐指数
2
解决办法
7224
查看次数

如何删除数组中的重复项?

如何删除数组中的重复项?

例如,如果我有以下数组:

$array = array('1','1','2','3');
Run Code Online (Sandbox Code Playgroud)

我希望它成为

$array = array('2','3');
Run Code Online (Sandbox Code Playgroud)

所以如果找到其中两个,我希望它删除整个值

php arrays

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

数组部件访问

我想更好地理解数组.请原谅我的基本问题,因为我刚刚在三周前打开了我的第一本php书.

我知道您可以使用foreach(或for循环)检索键/值对,如下所示.

 $stockprices= array("Google"=>"800", "Apple"=>"400", "Microsoft"=>"4",  "RIM"=>"15",  "Facebook"=>"30");

foreach ($stockprices as $key =>$price)
Run Code Online (Sandbox Code Playgroud)

令我困惑的是像这样的多维数组:

$states=(array([0]=>array("capital"=> "Sacramento", "joined_union"=>1850, "population_rank"=> 1),
              [1]=>array("capital"=> "Austin", "joined_union"=>1845,"population_rank"=> 2),
              [2]=>array("capital"=> "Boston", "joined_union"=>1788,"population_rank"=> 14)
              ));
Run Code Online (Sandbox Code Playgroud)

我的第一个问题非常基本:我知道"大写","joined_union","population_rank"是关键,"萨克拉门托","1850","1"是值(正确吗?).但你怎么称呼[0] [1] [2]?它们是"主键"和"大写"等子键吗?我找不到任何定义;无论是在书中还是在线.

主要问题是如何检索数组[0] [1] [2]?假设我想在1845年获得join_union的数组(或者在19世纪更加棘手),然后删除该数组.

最后,我可以将Arrays [0] [1] [2]命名为加利福尼亚州,德克萨斯州和马萨诸塞州吗?

$states=(array("California"=>array("capital"=> "Sacramento", "joined_union"=>1850, "population_rank"=> 1),
              "Texas"=>array("capital"=> "Austin", "joined_union"=>1845,"population_rank"=> 2),
              "Massachusetts"=>array("capital"=> "Boston", "joined_union"=>1788,"population_rank"=> 14)
              ));
Run Code Online (Sandbox Code Playgroud)

php

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

列出可用的ACF灵活布局选项

我正在为Wordpress安装创建一个设置系统,如果当前网站不需要,超级管理员可以禁用某些ACF灵活内容布局,而无需修改插件的结构.

我正在寻找一种方法来列出新管理页面中所有可用的ACF灵活内容布局.

浏览插件的文件夹后,我在里面找到了以下代码class-acf-field-flexible-content.php:

<script type="text-html" class="tmpl-popup"><?php 
    ?><div class="acf-fc-popup"><ul><?php foreach( $layouts as $layout ): 

        $atts = array(
            'href'            => '#',
            'data-layout'    => $layout['name'],
            'data-min'         => $layout['min'],
            'data-max'         => $layout['max'],
        );

        ?><li><a <?php acf_esc_attr_e( $atts ); ?>><?php echo $layout['label']; ?></a></li><?php 

    endforeach; ?></ul></div>
</script>
Run Code Online (Sandbox Code Playgroud)

其中构建了客户端在创建新帖子/页面时使用的可用布局列表.

有没有人知道一种简单的方法,我可以在PHP中构建一个ACF布局数组,我可以只在WP管理器内的不同页面上显示?

对不起,我没有任何代码可以显示,这是一个独特的请求

php wordpress advanced-custom-fields acfpro

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

在array_keys中跳过提交按钮

我有一个PHP例程来处理表单并将值输出到CSV文件.我正在使用array_keys()创建标题行(如果有的话,跳过).一切都很完美,除了最后的标题术语是"提交",因为当然,我的表单包含一个提交按钮.所以数据最终看起来像这样:

name,email,cell,dob,study,submit
"Temp One",fred@gmail.com,646-325-1111,1995-03-31,8,Submit
"Temp Two",tom@gmail.com,646-325-2222,1995-03-31,4,Submit
Run Code Online (Sandbox Code Playgroud)

如何从标题和数据中省略提交按钮?

这是我的代码:

if(isset($_POST['submit'])) {
    $data = array_values($_POST); // get only values
    $headers = array_keys($_POST); // keys are headers 
    if( $fp = fopen('data.csv','a+')) {
        $line = fgets($fp);
        if(!$line == $headers) {
                fputcsv($fp, $headers);
                fputcsv($fp, $data);
        }
        else
        {
            fputcsv($fp, $data);
        }
        fclose($fp);
        header('Location: thanks.php'); 
    }
}
Run Code Online (Sandbox Code Playgroud)

php fputcsv

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

如果密钥包含(匹配)一个或多个子字符串,如何从PHP数组中删除键值对

我有一个大型数组(为方便起见简化):

Array
(
    [last_name] => Ricardo 
    [first_name] => Montalban
    [sex] => Yes please
    [uploader_0_tmpname] => p171t8kao6qhj1132l14upe14rh1.jpg
    [uploader_0_name] => IMAG0114-1.jpg
    [uploader_0_status] => done
    [uploader_count] => 1
    [captcha_uid] => 155
)
Run Code Online (Sandbox Code Playgroud)

并希望删除键所在的所有键值对uploader_(可以是一系列)以及每次出现的键值对captcha_uid.

我在这里看到了一个有用的例子: 如果值与模式匹配,则删除一个键? 但我对正则表达式很糟糕.如何最佳地做到这一点?非常感谢您的观点.

php regex arrays filter

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

PHP:array_diff - 删除一个值

我目前正在尝试使用array_diff从数组中删除1个值.

代码现在看起来像这样:

$item_id = 501;
$array = array_diff($user_items, array($item_id));
Run Code Online (Sandbox Code Playgroud)

用户项目数组:501,501,502,502

结果正确的数组:502,502

是否可以仅删除1x501而不是2x501值?或者说不同:将删除限制为1

数组是:501,502,502

任何建议表示赞赏

php arrays

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

如何删除会话中的数组中的项?PHP

我有一个包含数组的会话.该数组包含以下数据:

Array ( 
    [0] => /assets/img/user_photos/thumbs/9c2310c2def9981221ec37cbbafe0370.jpg 
    [1] => /assets/img/user_photos/thumbs/286b59eb3dafe2e0cf0df50e45f10250.jpg 
    [2] => /assets/img/user_photos/thumbs/4e6012cc396252594d2a05850b0a35ae.jpg 
    [3] => /assets/img/user_photos/thumbs/49ce9031319203c1911c0b9789a83ffc.jpg 
    [4] => /assets/img/user_photos/thumbs/da21379f3dc80541a087e1c4db5f929a.jpg 
    [5] => /assets/img/user_photos/thumbs/1f46378fdd7dcf7fda580e50ca92a2d0.jpg 
)
Run Code Online (Sandbox Code Playgroud)

我想从这个数组中删除一个项目.当数组存储在会话中时,这怎么可能?

php arrays session

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

从数组php中删除一个值

有更简单的方法吗?

$array = array(1,57,5,84,21,8,4,2,8,3,4);
$remove = 21;   
$i = 0;
foreach ($array as $value ){
    if( $value == $remove)
        unset($array[$i])
        $i++;
    }

//array: 1,57,5,84,8,4,2,8,3,4
Run Code Online (Sandbox Code Playgroud)

php arrays

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