所以我对递归的想法是新的,我写了这个简单的代码来计算一个数字($ n)这是代码:
$n = 120;
$y = 1;
function factor($n, $y) {
if($y > $n) {
return 1;
} else {
$x = $n / $y;
list($whole, $dec) = array_pad(explode('.', $x), 2, Null);
if($dec == '') {
echo 'x:' . $x . ' y:' . $y . '</br>';
return factor($n, ($y + 1));
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是代码输出的内容:
x:120 y:1
x:60 y:2
x:40 y:3
x:30 y:4
x:24 y:5
x:20 y:6
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么它会在它完成之前停止?
我知道.css()用于获取和设置特定元素的CSS规则.我见过一个有这个CSS的网站:
body, table td, select {
font-family: Arial Unicode MS, Arial, sans-serif;
font-size: small;
}
Run Code Online (Sandbox Code Playgroud)
我从来不喜欢Arial Unicode这种字体.嗯,那是我个人的感受.所以,我会使用Chrome的样式检查编辑Arial Unicode MS到Segoe UI或者我喜欢的东西.无论如何,除了使用以下实现相同之外?
$("body, table td, select").css("font-family", "Segoe UI");
Run Code Online (Sandbox Code Playgroud)
$('<style>body, table td, select {font-famnily: "Segoe UI";}</style>')
.appendTo("head");
Run Code Online (Sandbox Code Playgroud)
<style>标签!基本上,我想使用
$foo = new RecursiveIteratorIterator(new RecursiveArrayIterator($haystack));
Run Code Online (Sandbox Code Playgroud)
方法,但不是返回一个平面数组foreach()来保持结构,而是只返回一个伟大的大子节点和它的父节点.这可能在PHP?
我的任务是优化我公司的一些(可怕的)代码库.我发现了一个通过数组递归,搜索密钥的函数.我不能用一个简单的替换它,array_search()或者array_key_exists()因为自定义函数也返回匹配(找到)键的父节点,而不是只返回一个true或false.
如何使用RecursiveArrayIterator,RecursiveIteratorIterator或做不到这一点,其他内置功能(即尽可能少的自定义代码越好)返回匹配的节点与它的父树从搜索阵列?我想获得最快的功能,因为目前这个功能花费8秒执行14000次,因此我需要使用内置函数.
我现有的尝试(下面)非常缓慢.
function search_in_array($needle, $haystack) {
$path = array();
$it = new RecursiveArrayIterator($haystack);
iterator_apply($it, 'traverse', array($it, $needle, &$path));
return $path;
}
function traverse($it, $needle, &$path) {
while($it->valid()) {
$key = $it->key();
$value = $it->current();
if(strcasecmp($value['id'], $needle) === 0) {
$path[] = $key;
return;
} else if($it->hasChildren()) {
$sub = null;
traverse($it->getChildren(), $needle, &$sub);
if($sub) {
$path[$key] …Run Code Online (Sandbox Code Playgroud) 我想用a做以下LEFT JOIN(请不要建议UNION ALL)
SELECT o.*, s.col1, s.col2 FROM order o
INNER JOIN user u ON o.user_id = u.id
IF o.date less than '2011-01-01'
JOIN subscribe s ON u.key = s.key
ELSE
JOIN subscribe s ON u.email = s.email
END IF;
Run Code Online (Sandbox Code Playgroud)
我使用以下但无法测试它.
SELECT o.*, COALESCE(s1.col1,s2.col1) AS
col1, COALESCE(s1.col2, s2.col2) AS col2
FROM order o INNER JOIN user u ON o.user_id = u.id
LEFT JOIN subscribe s1 ON
(u.key LIKE (CASE o.date >= '2011-01-01 00:00:00'
WHEN TRUE THEN …Run Code Online (Sandbox Code Playgroud) 所以我有一些会话检查,看看它是不是使用PHP被盗.我将请求计数设置为会话数组中的值,并将具有相同值的cookie发送到客户端.如果值不匹配则有人干扰.
问题是,有时值不匹配,我怀疑有人偷了会话并使用它.Firefox存储cookie的速度有可能吗?我问这个是因为当我点击时我有一个点击垃圾的鼠标坏了.当我使用触摸板时,我从不断开与应用程序的连接.
php ×3
conditional ×1
cookies ×1
css ×1
factoring ×1
firefox ×1
javascript ×1
join ×1
jquery ×1
mozilla ×1
mysql ×1
optimization ×1
recursion ×1
spl ×1
styles ×1