我有这样的阵列
$arr = [
'baz' => [
'foo' => [
'boo' => 'whatever'
]
]
];
Run Code Online (Sandbox Code Playgroud)
无论如何使用字符串输入取消设置['boo']值?
这样的事情
$str = 'baz->foo->boo';
function array_unset($str, $arr) {
// magic here
unset($arr['baz']['foo']['boo']);
return $arr;
}
Run Code Online (Sandbox Code Playgroud)
这个答案非常棒,它是我脚本运行的第一部分.使用字符串路径设置嵌套数组数据 .但它不能逆转.PS eval()不是一个选项:(
这是问题所在。我有一个 bash 脚本,它从 php 脚本获取路径。但它不能将目录更改为返回路径;
function go_to_path
{
path=$(php myscript)
echo $path; # is totally okay, printing expected value
cd $path; # err -> no such file or directory. Directory is obviously exists
}
Run Code Online (Sandbox Code Playgroud)
那东西也不起作用
eval cd $path
echo $(cd $path)
cd "$path"
Run Code Online (Sandbox Code Playgroud)
我在 Windows 上通过 cygwin 运行 bash
最近我决定从 lodash 切换到 ramda,以使用功能方式来编写我的逻辑。我喜欢它!在对 FP 进行了一些广泛的挖掘之后,我发现它不仅与方便的纯/无点实用程序 (ramda) 有关,而且更多地与复杂的(至少对我而言)数学抽象(fantasy-land)有关。我没有全部了解,但Either 和Task 模式看起来非常方便。问题是我不确定如何将它与 ramda 实用程序合并。我知道 ramda-fantasy,但它不再维护。Ramda-fantasy 建议的库与 ramda-fantasy 的工作方式不同。有了关于 Monads/Monoids/Functors 类型的所有这些新信息,我完全迷失了。
例如,这个约定是什么?
Right('boo')
.map(x => x + '!')
.map(x => x.toUpperCase())
vs
R.pipe(
R.map(x => x + '!')
R.map(x => x.toUpperCase())
)(Right('boo'))
Run Code Online (Sandbox Code Playgroud)
如果我决定一直切换到 Monads,我是否不需要 ramda?
javascript functional-programming ramda.js fantasyland ramda-fantasy
我有一个这样的对象
obj = {
'baz':1,
'foo':7,
'zap':12,
'qax':15
}
Run Code Online (Sandbox Code Playgroud)
我需要将它分成2个数组
arr1 = ['baz', 'foo', 'zap', 'qax']
arr2 = [1, 7, 12, 15]
Run Code Online (Sandbox Code Playgroud) Docker 菜鸟在这里。已经使用 docker 容器设置了一个开发服务器。我能够运行一个基本的容器。例如
docker run --name node-test -it -v "$(pwd)":/src -p 3000:3000 node bash
Run Code Online (Sandbox Code Playgroud)
按预期工作。一旦我有很多小项目,我想绑定/侦听实际的 http localhost 路径而不是端口。类似的东西
docker run --name node-test -it -v "$(pwd)":/src -p 3000:80/node-test node bash
Run Code Online (Sandbox Code Playgroud)
是否可以?谢谢。
编辑。基本上我想输入localhost/node-test而不是localhost:3000在我的浏览器窗口中