相关疑难解决方法(0)

PHP:从数组中删除元素

有没有一种简单的方法可以使用PHP从数组中删除元素,这样foreach ($array)就不再包含该元素了?

我认为设置它null会这样做,但显然它不起作用.

php arrays unset

2362
推荐指数
27
解决办法
245万
查看次数

PHP reindex数组?

我有阵列,我不得不取消一些索引,所以现在它看起来像

$myarray [0] a->1
         [1] a-7 b->3
         [3] a-8 b->6
         [4] a-3 b->2
Run Code Online (Sandbox Code Playgroud)

你可以看到[2]缺少所有我需要做的是重置索引,所以他们显示[0] - [3].

php arrays indexing

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

如何计算PHP数组中的非空条目?

考虑:

[name] => Array ( [1] => name#1
                  [2] => name#2
                  [3] => name#3
                  [4] => name#4
                  [5] =>
                  [6] =>
                  [7] =>
                  [8] =>
                  [9] =>
                )


$name = $_POST['name']
Run Code Online (Sandbox Code Playgroud)

我想要结果4.

count ($name) = 9
count (isset($name)) = 1
count (!empty($name)) = 1
Run Code Online (Sandbox Code Playgroud)

我认为最后一个会完成我需要的东西,但它不是(空条目来自表单上未填充的输入).

php arrays count

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

为什么以及如何在PHP中使用匿名函数?

PHP 5.3提供匿名函数.
我应该使用它们还是避免使用它们?如果是这样,怎么样?

编辑 ; 刚刚用php匿名函数发现了一些不错的技巧......

$container           = new DependencyInjectionContainer();
$container->mail     = function($container) {};
$conteiner->db       = function($container) {};
$container->memcache = function($container) {};
Run Code Online (Sandbox Code Playgroud)

php anonymous-function

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

如何从数组中删除空值?

我有一个阵列

数组([0] => 0 [1] => [2] => 3 [3] =>)

我想从中删除空值,结果应该是这样的

数组([0] => 0 [1] => 3)我不想从数组中删除0值.

php arrays

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

如何删除空关联数组条目

我有一个关联数组: $csv_arr

Array
(
    [0] => Array
        (
            [Enfalac] => alpha linolenic acid 300 mg
            [Enfapro] => alpha linolenic acid 200 mg
        )

    [1] => Array
        (
            [Enfalac] => arachidonic acid 170 mg
            [Enfapro] => 
        )

    [2] => Array
        (
            [Enfalac] => 
            [Enfapro] => 
        )

    [3] => Array
        (
            [Enfalac] => calcium 410 mg
            [Enfapro] => calcium 550 mg
        )
)
Run Code Online (Sandbox Code Playgroud)

如何删除所有完全空的条目,例如$csv_arr[2]保留部分条目,例如$csv_arr[1]

我试过$csv_arr = array_filter(array_map('array_filter', $csv_arr));但是这会删除空元素:$csv_arr[1]['Enfapro']

谢谢

php associative-array multidimensional-array

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

将所有请求重定向到index.php,不带.htaccess

我目前使用以下命令将所有请求重定向到 index.php 文件:

<IfModule mod_rewrite.c>
RewriteEngine on

# base path, if not the root directory
RewriteBase /dev/public/

# direct all requests to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php
</IfModule>
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但它限制我的代码只能在启用了 mod_rewrite 的服务器上运行。所以我想知道,有没有办法在不使用 .htaccess 的情况下模拟这种行为?其他框架是如何做到的?

php

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

PHP中的闭包或create_function

我已经决定使用闭包来代替我的回调create_function,因此只支持PHP> 5.3,主要是因为增加了可调试性,也因为我假设(他们对假设的说法是什么?)是on-the的开销. -fly编译create_function在我的情况下可能会抵消任何额外的比较,并且必须在函数内进行.

这可能仍然是这种情况(对于我的应用程序)并且需要进一步测试,但我对这个(非常)简单测试的输出感兴趣,该测试显示该create_function方法的速度比关闭时快两倍以上只有四个条件(和concats).显然在我的测试用例中没有进行额外的处理,这就是大部分速度将会获得或丢失的地方,但是在你没有多少额外处理但是有很多条件(可以删除)和回调被调用足够多次我开始认为使用它可能更好create_function.

然而,create_function和之间有明显的相似性eval,我对它很谨慎.

所以主要的问题是创建的匿名函数create_function和闭包函数之间的区别是什么?

我正在考虑的一些具体问题,create_function甚至可以在eval禁用功能时使用?并且,我确信我最近在某处读到,create_function即使声明为内部函数,函数也会污染全局(或类)命名空间,但闭包不会.我现在找不到对此的引用,但这些陈述中的一个或两个都是真的吗?


这是我跑的小测试:

<?php

function foo($a=true, $b=true, $c=true, $d=true)
{
    $inner1 = create_function(
        '', 
        '$r = \''.($a ? 'a' : '').
                  ($b ? 'b' : '').
                  ($c ? 'c' : '').
                  ($d ? 'd' : '').'\';
         return $r;'
    );  


    $inner2 = function() use ($a, $b, $c, $d) 
    {   
        $r = ''; 
        if($a) { $r .= …
Run Code Online (Sandbox Code Playgroud)

php closures callback anonymous-function

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

Array_filter和empty()

警告:array_filter()期望参数2是有效的回调,找不到函数'empty'或函数名称无效....

为什么空被认为是无效的回调?

$arr = array_filter($arr, 'empty');
Run Code Online (Sandbox Code Playgroud)

这有效: if(empty($arr['foo'])) die();

php array-filter

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

从爆炸字符串中删除空数组元素

可能重复:
删除空数组元素

我想从数组中删除空元素.我有一个字符串,它被设置为一个数组explode().然后我array_filter()用来删除空元素.但这不起作用.见下面的代码:

$location = "http://www.bespike.com/Packages.gz";
$handle = fopen($location, "rb");
$source_code = stream_get_contents($handle);
$source_code = gzdecode($source_code);
$source_code = str_replace("\n", ":ben:", $source_code);
$list = explode(":ben:", $source_code);
print_r($list);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,$list仍然有空元素.我也尝试过使用该empty()功能,但结果是一样的.

php arrays explode

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